2010-03-12 134 views
0

我是ZF的新手,我正在寫Zend Framework 1.10。 這是我的應用程序目錄結構。Zend Framework自動加載3個模塊

APPLICATION_PATH` 
├─configs 
├─layouts 
└─modules 
    ├─admin 
    │ ├─controllers 
    │ ├─forms 
    │ ├─models 
    │ └─views 
    │  ├─filters 
    │  ├─helpers 
    │  └─scripts 
    │   ├─authentication 
    │   ├─cars 
    │   └─index 
    └─default 
     ├─controllers 
     ├─forms 
     │ └─admin 
     ├─models 
     │ └─DbTable 
     ├─plugins 
     └─views 
      ├─helpers 
      └─scripts 
       ├─about 
       ├─contact 
       ├─error 
       ├─index 
       ├─insurance 
       └─used-cars 

我在APPLICATION_PATH 3頁bootstrap.php中的文件,/默認/和/管理,

我用自動裝入加載模型,並形成

// APPLICATION_PATH/Bootstrap.php 
$modelLoader = new Zend_Application_Module_Autoloader(array(
'namespace' => '', 'basePath' => APPLICATION_PATH . '/modules/default')); 

上面的代碼將加載所有車型並在模塊/默認情況下自動生成,現在,我有一個問題,在默認模塊中的/ modules/admin/models和/ modules/admin/forms中調用窗體和模型。

解決此問題的任何解決方案? 如何命名/ modules/admin中的類名稱

謝謝。

回答

3

您的每個模塊都應該有一個模塊引導程序。

<?php 
class Admin_Bootstrap extends Zend_Application_Module_Bootstrap 
{ 
} 

模塊引導爲該模塊設置默認的自動加載器。

更新所發表​​評論:

確保您的INI設置來引導模塊

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

然後確保每個模塊都有一個引導類(見上文)。

+0

我已經完成了這個並使用它們,但是當應用程序加載時所有引導程序都會被觸發? – Sjwdavies 2012-02-24 17:07:48

+0

我在回答中增加了另一塊代碼,提供了關於如何準備自舉模塊的更多信息。回答你的問題:是的,如果你的模塊設置正確,所有的引導程序應該被解僱。 – 2012-02-24 17:47:04

0

嘗試使用Zend Tool - 它會爲您創建所有必需的路徑和文件,並且是開始使用Zend的好方法。

0

所有,如果您需要做的就是添加另一個模塊自動加載加載管理模塊:

$adminLoader = new Zend_Application_Module_Autoloader(array(
    'namespace' => 'Admin', 'basePath' => APPLICATION_PATH . '/modules/admin')); 

原來的模塊auotloader後添加。然後,您可以通過創建它們來引用默認模塊中的內容。

$form = new Admin_Form_TheForm(); 
+0

太棒了〜我明白你的意思了! 謝謝。 – haohan 2010-03-12 19:10:51

+0

更好的讓ZF在模塊引導中爲你做這個,按弗朗西斯的答案。 – 2011-09-09 13:09:59