Yii загрузчик внутри модуля
Я пытаюсь включить YII начальной загрузки из модуля. Я хочу сохранить его в /modules/myModule/extensions/bootstrap и всех параметрах конфигурации вне основной конфигурации. Является ли это возможным?
В настоящее время в myModule init я делаю
$this->setImport(array(
'myModule.models.*',
'myModule.components.*',
'myModule.extensions.yiistrap.helpers.TbHtml',
'myModule.extensions.bootstrap.components.*',
'myModule.extensions.bootstrap.widgets.*'
));
if (!Yii::app()->hasComponent('bootstrap')) {
Yii::setPathOfAlias('bootstrap', dirname(__FILE__) . '/extensions/bootstrap');
Yii::createComponent('bootstrap.components.Bootstrap')->init();
Yii::app()->bootstrap->register();
}
}
и это работает для некоторых виджетов, но для большинства я получаю ошибку
Property "CWebApplication.bootstrap" is not defined.
1 ответ
Вам нужно установить компонент начальной загрузки приложения, это должно работать:
Yii::setPathOfAlias('bootstrap', dirname(__FILE__) . '/extensions/bootstrap');
$bootstrap = Yii::createComponent('bootstrap.components.Bootstrap');
$bootstrap->init();
Yii::app()->bootstrap = $bootstrap;
$bootstrap->register();
Для передачи конфигурации в загрузчик:
$config = array(
'class' => 'bootstrap.components.Bootstrap',
'option1' => ...
);
$bootstrap = Yii::createComponent($config);