2009-09-24 28 views
0

好吧,我無法言表!Zend Framework 1.9 addModuleDirectory不起作用?

我有一個ZF 1.9應用程序。以下是我的bootstrap.php中:

$front = Zend_Controller_Front::getInstance(); 
$front->addModuleDirectory(dirname(__FILE__).'/modules'); 

我已經把一些跟蹤代碼到ZF庫文件,我可以看到調用addModuleDirectory並給addControllerDirectory此後的內部調用 - 它有正確的價值觀爲模塊名稱和路徑。如果我轉儲內部_controllerDirectory變量(順便說一句,這全部在Library/Controller/Dispatcher/Standard.php中),我可以看到我的模塊目錄。

我的跟蹤顯示的下一件事是默認控制器目錄被添加爲默認控制器 - 完美。

但是,在下次調用dispatch()時,我再次轉儲_controllerDirectory變量,它只獲取默認模塊的控制器目錄。 WTF?我有跟蹤到一個文件...在這裏它(是由我評論):

 
    -- first call, triggered by addModuleDirectory(): 
    Adding 13:09:08 
    Module itemquestion 
    Path /Users/don/Documents/Aptana Studio Workspace/cahoots2/application/modules/itemquestion/controllers 

    -- You can see my dir is in here... 
    _controllerDirectory contains: 13:09:08 
    /Users/don/Documents/Aptana Studio Workspace/cahoots2/application/modules/itemquestion/controllers 

    -- second call, triggered internally by ZF: 
    Adding 13:09:08 
    Module default 
    Path /Users/don/Documents/Aptana Studio Workspace/cahoots2/application/controllers 

    -- Where's my directory???? 
    _controllerDirectory contains: 13:09:08 
    /Users/don/Documents/Aptana Studio Workspace/cahoots2/application/controllers 

什麼在世界上我做錯了?爲什麼我不能讓我的模塊的目錄保持持久性?

編輯:一些額外的細節。我在/ modules文件夾中添加了第二個模塊。現在,我可以看到第一個模塊被添加並顯示在_controllerDirectory變量中。然後,我可以看到第二個添加的內容,並在變量中看到它們的兩個。然後我看到添加了默認模塊,在調用之後,它是_controllerDirectory中唯一的東西。

回答

3

好吧,看來解決的辦法是把它添加到的application.ini:

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 

這是有點不直觀和最起碼甚至沒有遠程的ZF參考手冊記錄。 Oy公司。但這似乎解決了這個問題。

+0

我一直在模塊目錄結構和propper安裝程序以及。這個主題的文檔很差ATM ... – NDM 2009-09-25 11:20:29

-1

嗯,我認爲這取決於你把它放在bootstrap上的哪個部分,因爲如果你把它放在應用程序資源控制器之前,它可能會覆蓋它。爲了確保前端控制器是自舉,你可以使用這樣的事情:

protected function _initFrontModules() { 
     $this->bootstrap('frontController'); 
     $front = $this->getResource('frontController'); 
     $front->addModuleDirectory('path/to/modules'); 
} 

如果省略引導線就可以執行第一你的方法,然後與從插件的一個覆蓋它。

+0

這段代碼應該去哪裏?沒有上下文! – KOGI 2010-10-08 19:22:32

+0

在Bootstrap文件中;-) – Chris 2010-10-08 20:04:42