2012-02-21 159 views
3

我有一個非常奇怪的情況,其中我的模塊正在工作,但我的模塊的boostrap沒有被加載。Zend模塊Bootstrap不加載

這裏是自動加載模塊在我的application.ini段:

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 
resources.modules[] = "" 

這裏是引導程序:

protected function _initAutoload() 
    { 
     $autoloader = new Zend_Application_Module_Autoloader(array(
      'namespace' => 'User_', 
      'basePath' => APPLICATION_PATH .'/modules/user', 
      'resourceTypes' => array (
      'model' => array(
       'path' => 'models', 
       'namespace' => 'Model', 
       ) 
      ) 
     )); 
    } 

我模塊

Application 
--modules 
----user 
------config/ 
------controllers/ 
------models/ 
------views/ 
------Bootstrap.php 
----admin 

這裏的問題結構是沒有加載User_Bootstrap。

<?php 

class User_Bootstrap extends Zend_Application_Module_Bootstrap 
{ 

    protected function _initAutoload() 
    { 
     Zend_Registry::set('debug', 'haha'); 
    } 
} 

通過做任何的控制器上合適的詞彙::得到(「調試」),它不承認,關鍵是在模塊設置引導。事實上,User_Bootstrap中的任何語法錯誤都不起作用。

我不知道爲什麼User_Bootstrap沒有被自動加載。這讓我瘋狂,因爲我一直在研究5個小時,甚至無法獲得博客文章接近覆蓋這種情況...

說到這,我的模型和控制器類正在自動加載罰款。

回答

1

不確定,但它可能就像不正確的情況一樣簡單。 --Modules在您的結構中,但您一直將其稱爲/modules。這些應該匹配大小寫。

我希望就這麼簡單。

不要在模塊引導程序中複製主引導程序的函數名稱,據我所知在ZF 1.x中所有的boostraps都會在每次調用時得到處理,我認爲您的主引導程序中的_initAutoload覆蓋了模塊引導。

嘗試調用一些不同的_initModuleAutoload函數。
至少值得一試:)

+0

對不起,我犯了一個錯字。它在我的目錄中是小寫的。我不認爲這應該是問題,因爲模塊本身正在工作。它正在加載所有的控制器,模型和視圖。唯一沒有加載的是Bootstrap。 – shiva8 2012-02-21 03:24:31

+0

@DylanSumiskum檢查編輯,可能有一個可能的解決方案, – RockyFord 2012-02-21 04:19:42

0

您是否嘗試過在的application.ini配置文件中禁用frontController目錄?嘗試評論/刪除此行:

resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"