2012-05-11 1 views
0

J'ai une application Zend qui a un module CMS et un module utilisateur. Je dois faire quelque chose dans le bootstrap du module CMS qui implique un service sous le module User. Lorsque j'essaie d'instancier la classe de service, j'obtiens une erreur "Classe non trouvée", ce qui suggère que les ressources du module Utilisateurs ne sont pas encore chargées automatiquement.Zend 1.11 + Impossible d'utiliser une ressource de module dans le bootstrap d'un autre module

Je tiens à souligner que je dois le faire pendant bootstrap, pas après.

Comment puis-je éventuellement charger une ressource à partir de mon module Utilisateurs à partir du bootstrap de mon module d'administration?

+0

Vous aurez probablement construire un plugin pour charger les ressources du [preDispatch()] (http://framework.zend.com/manual/en/zend.controller.plugins.html) ou plus tôt. De cette façon, tout le bootstrap sera exécuté – RockyFord

+0

Comment chargez-vous actuellement vos modules? Grâce à resources.modules dans application.ini ou dans le bootstrap principal? –

Répondre

0

Vous pouvez effectuer le chargement automatique de toutes les classes d'application nécessaires et namespaces dans le bootstrap global (et non dans le module bootstraps spécifiques):

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 
} 
Questions connexes