2012-05-11 8 views
0

У меня есть приложение Zend, в котором есть модуль CMS и пользовательский модуль. Мне нужно что-то сделать в загрузочном модуле модуля CMS, который включает сервис в модуле User.Zend 1.11 + Нельзя использовать ресурс модуля из загрузочного модуля другого модуля

Когда я пытаюсь создать экземпляр класса сервиса, я получаю ошибку «Класс не найден», предполагая, что ресурсы в модуле Users еще не загружены автоматически.

Я хочу подчеркнуть, что я должен делать это во время загрузки, а не после.

Как я могу загрузить ресурс из модуля «Мои пользователи» из загрузочного модуля моего модуля?

+0

Вы, вероятно, придется создать плагин для загрузки ресурсов в [preDispatch()] (http://framework.zend.com/manual/en/zend.controller.plugins.html) или ранее. Таким образом, все бутстрапы будут запущены – RockyFord

+0

Как вы загружаете модули в настоящее время? Через resources.modules в application.ini или в основном бутстрапе? –

ответ

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 
}