Как правильно «бутстрапить» в Zend Framework 1 при модульной структуре? Всем привет! Строю приложение на Zend Framework 1. Структура папок следующая: application ...modules default controllersviewsBootstrap.php module_1 controllersviewsBootstrap.php Хочу юзать для каждого модуля свой отдельный класс Bootstrap. Но при такой структуре zf создает экземпляры классов Bootstrap каждого из моих модулей. К примеру я открываю страницу которая роутится на модуль default, но при этом создаются экземпляры классов Bootstrap из модуля defaul и из модуля module_1. Помогите разобраться в вопросе.Спасибо!
Чтобы правильно "бутстрапить" модули в Zend Framework 1 при модульной структуре, вам необходимо определить отдельные Bootstrap классы для каждого модуля и настроить загрузчик ресурсов так, чтобы он загружал Bootstrap только для активного модуля.
Пример настройки загрузчика ресурсов для модуля default:
class Default_Bootstrap extends Zend_Application_Module_Bootstrap { protected function _initAutoload() { $autoloader = new Zend_Application_Module_Autoloader(array( 'namespace' => 'Default_', 'basePath' => dirname(__FILE__), )); return $autoloader; } }
Пример настройки загрузчика ресурсов для модуля module_1:
class Module_1_Bootstrap extends Zend_Application_Module_Bootstrap { protected function _initAutoload() { $autoloader = new Zend_Application_Module_Autoloader(array( 'namespace' => 'Module_1_', 'basePath' => dirname(__FILE__), )); return $autoloader; } }
Затем в файле application.ini укажите путь к Bootstrap классу для каждого модуля:
Таким образом, Zend Framework будет загружать только активный Bootstrap класс для каждого модуля при обращении к нему. Надеюсь, это поможет вам разобраться с вашей проблемой. Если у вас возникнут дополнительные вопросы, не стесняйтесь задать их.
Чтобы правильно "бутстрапить" модули в Zend Framework 1 при модульной структуре, вам необходимо определить отдельные Bootstrap классы для каждого модуля и настроить загрузчик ресурсов так, чтобы он загружал Bootstrap только для активного модуля.
Пример настройки загрузчика ресурсов для модуля default:
class Default_Bootstrap extends Zend_Application_Module_Bootstrap{
protected function _initAutoload()
{
$autoloader = new Zend_Application_Module_Autoloader(array(
'namespace' => 'Default_',
'basePath' => dirname(__FILE__),
));
return $autoloader;
}
}
Пример настройки загрузчика ресурсов для модуля module_1:
class Module_1_Bootstrap extends Zend_Application_Module_Bootstrap{
protected function _initAutoload()
{
$autoloader = new Zend_Application_Module_Autoloader(array(
'namespace' => 'Module_1_',
'basePath' => dirname(__FILE__),
));
return $autoloader;
}
}
Затем в файле application.ini укажите путь к Bootstrap классу для каждого модуля:
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"resources.frontController.defaultModule = "default"
resources.modules[] = "module_1"
Таким образом, Zend Framework будет загружать только активный Bootstrap класс для каждого модуля при обращении к нему. Надеюсь, это поможет вам разобраться с вашей проблемой. Если у вас возникнут дополнительные вопросы, не стесняйтесь задать их.