2012-05-11 10 views
0

CMSモジュールとUserモジュールを持つZendアプリケーションがあります。私はCMSモジュールのブートストラップで、Userモジュールのもとでサービスを行う何かをする必要があります。Zend 1.11 +他のモジュールのブートストラップ内からモジュールリソースを使用できません

サービスクラスをインスタンス化しようとすると、「クラスが見つかりません」というエラーが表示され、ユーザーモジュールのリソースがまだ自動ロードされていないことが示唆されます。

私はブートストラップ時にそれをしなければならないことを強調したいと思います。

Adminモジュールのブートストラップからユーザーモジュールからリソースをロードするにはどうすればよいですか?

+0

あなたはおそらく内のリソースをロードするためのプラグインを構築する必要があります[preDispatch()](http://framework.zend.com/manual/en/zend.controller.plugins.html)またはそれ以前。そうすれば、すべてのブートストラップが実行されます – RockyFord

+0

現在どのようにモジュールをロードしていますか? application.iniのresources.modulesまたはメインのブートストラップを介して? –

答えて

0

あなたがグローバルブートストラップ内(とないモジュール固有のブートストラップに)必要なすべてのアプリのクラスと名前空間の自動ロードを実行することができます。

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { 
    protected function _initAutoloaders() 
    { 

     // require/require_once for libs/modules with specific autoloaders 

     // Load HTML purifier autoloader 
     require_once 'HTMLPurifier' . DS . 'HTMLPurifier.auto.php'; 

     // Load WideImage 
     require_once 'WideImage' . DS . 'WideImage.php'; 

     // ... 

     // Use Zend autoloader for other stuff 

     $zendAutoloader = Zend_Loader_Autoloader::getInstance(); 

     // Register stuff. 
     $autoloader = array(new SomeClassLoader('SomeLib', LIB_PATH), 'loadClass'); 
     $zendAutoloader->pushAutoloader($autoloader, 'LibName\\'); 

     // ... 


    } 

    // ... Other initializers 
} 
関連する問題