我使用Zend Framework 1.8/1.9的Zend_Application
和資源系統來初始化一堆資源。我只想根據請求的模塊加載某些.ini文件 - 例如,如果(並且僅當)請求CMS模塊(「/ cms」)時加載「help.ini」。麻煩的是,我不確定如何訪問Zend_Application_Resource_ResourceAbstract
子類中的請求對象。初始化基於路由和/或模塊的資源
在我的一個資源(用於初始化CMS的自定義路由)中,我使用hacky小util來獲取模塊(如下),然後添加自定義路由(如果它匹配「cms」模塊名稱:
/**
* Grab the module name without a request instance
*
* @return string The module name
*/
public static function getModuleName()
{
$uri = ltrim($_SERVER["REQUEST_URI"], "/");
$module = substr($uri, 0, strpos($uri, "/"));
return $module;
}
$module = Typeoneerror_Util_Strings::getModuleName();
// -- only attach certain routes if using cms module
if ($module == Typeoneerror_Constants::CMS_MODULE)
{
...
我想這是更 「的Zend-Y」,即象一控制器插件,其中一個請求對象被傳遞給類:
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$router = $this->__front->getRouter();
...
有什麼想法?
「routeShutdown()在路由器完成路由請求後調用。」 - 正是我在找的東西!猜猜我應該對控制器插件事件的「生命週期」做更多的研究。做得好! – typeoneerror 2009-08-15 05:24:27