Начальная загрузка Yii внутри модуля

Я пытаюсь включить yii bootstrap из модуля. Я хочу сохранить его в /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.

person user2575661    schedule 12.07.2013    source источник


Ответы (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);
person Community    schedule 12.07.2013