2010-06-23 99 views
0

嘿那裏的傢伙,這是我的第一個問題堆棧溢出。我想這個網站幫了我很多,所以我也給了它一個鏡頭。Zend Framework:從另一個目錄加載模塊

我目前正在研究多個需要從通用模塊目錄繼承模塊的Zend Framework應用程序。所使用的文件結構是常規的方法(省略實際的名稱和參考文獻,以保護應用程序結構):

/application1 
    /application 
     /modules 
      /module1 
      /module2 
      /module3 
      /... 

/application2 
    /application 

現在我已經手動試圖自動加載每一個模塊中的應用2的像這樣自舉:

$moduleLoader = new Zend_Application_Module_Autoloader(
    array('namespace' => 'Prefix', 'basePath' => path_to_application1_application_modules_modulename) 
); 
$autoloader->pushAutoloader($moduleLoader); 

這有效,但你可以想象這變得相當繁瑣的工作。現在我也嘗試在FrontController中設置通用模塊目錄,如下所示:

$frontController = Zend_Controller_Front::getInstance(); 
$frontController->addModuleDirectory(path_to_application1_application_modules); 

但是,這似乎並沒有Bootstrap的任何模塊。我忘記了一些重要的事情嗎?非常感謝您的幫助!

回答

0

您可以在您的config.ini路徑中使用config resources.frontController.moduleDirectory = APPLICATION_PATH "/modules",然後使用自動加載器。

它適用於我,我只是通過更改config.ini中resources.frontController.moduleDirectory的路徑來使用來自其他應用程序的模塊。

想試試你的配置,在應用2 config.ini文件,你應該把resources.frontController.moduleDirectory = APPLICATION_PATH "/../application1/application/modules"

LE: 如果你希望你的模塊添加自舉在的config.iniresources.modules[] = ""與moduleDirectory行之後。嘗試它自己,沒有這個,其他模塊進入隨機模塊時不會自舉。

+0

無論如何,我嘗試它仍然不引導我的模塊。當我調試看到模塊引導程序被調用時,它們不顯示。我仍然無能爲力...... – 2010-06-23 08:27:23

+0

在'later edit'之後添加上面的行:) :) – 2010-06-23 08:39:43

+0

嗯沒有它似乎有效果。你提到過「那麼就使用自動加載器」。你會如何建議我使用它?通過創建一個新的模塊自動加載器對象並將其添加到自動加載器?就像我在問題中所描述的那樣。 – 2010-06-23 08:59:49

0

引導您的模塊時,您將它作爲Zend_Application_Module_Bootstrap執行。很明顯,但該文件應該位於根模塊文件夾中。