Засел Я Тут За Модуль

всем привет!

давно не виделись…

засел тут за первый свой модуль и захотелось спросить совета:

  1. как бы одним махом импортнуть все что нужно на уровне модуля? ну, чтобы не лезть в общий конфиг

  2. можно ли создать персональный конфиг модуля и "вживить" его в общий конфиг

как говорится = ай нид ё хэлп

У модуля есть головной файл (protected/modules/имяМодуля/имяМодуляModule.php), где можете творить что хотите.


class AdminModule extends CWebModule {

	public $layout = 'admin';

	public $defaultController = 'site';


	public function init() {

		// this method is called when the module is being created

		// you may place code here to customize the module or the application


		// import the module-level models and components

		$this->setImport(array(

			'admin.filters.*',

			'admin.models.*',

			'admin.components.*',

			'admin.controllers.AController',

		));


		Yii::app()->setComponent('user', Yii::app()->adminUser);

	}


	public function beforeControllerAction($controller, $action) {

		if (parent::beforeControllerAction($controller, $action)) {

			// this method is called before any module controller action is performed

			// you may place customized code here

			return true;

		} else {

			return false;

		}

	}

}

спасибо за оперативный ответ!

а как это отличается от привычной "прописи" всего в основном конфиге?

ведь init будет вызываться при каждом обращении к модулю

соответственно и импорты будут каждый раз осуществляться…

есть тут какая-нибудь тонкость?

Проблем нет, setImport() по сути Yii::import() только для массива алиасов, а собственно Yii::import() насколько я помню, добавляет классы в в список для инклуда, если указан без force. Если с force, они сразу идут в classMap.

Так что насчет производительности не переживайте.

Насчет параметров - выносите то что внешнее в конфиг, остальное оставляйте. Главное при создании модуля помнить, что он должен переноситься без проблем в другое приложение. Все что зависит от приложения - в конфиг.

гут

спасибо за развернутый ответ