Yii Framework Forum: Засел Я Тут За Модуль - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Засел Я Тут За Модуль и так все не просто оказалось Rate Topic: -----

#1 User is offline   styleroom 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 358
  • Joined: 14-January 12
  • Location:Долгопрудный, Россия

Posted 03 March 2014 - 06:03 AM

всем привет!
давно не виделись...

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

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

как говорится = ай нид ё хэлп
I'm sorry for my English...
0

#2 User is offline   ORey 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 1,701
  • Joined: 20-April 09
  • Location:Moscow, Russia

Posted 03 March 2014 - 06:22 AM

У модуля есть головной файл (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;
		}
	}
}

God is real unless declared as integer
0

#3 User is offline   styleroom 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 358
  • Joined: 14-January 12
  • Location:Долгопрудный, Россия

Posted 03 March 2014 - 06:44 AM

View PostORey, on 03 March 2014 - 06:22 AM, said:

У модуля есть головной файл (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 будет вызываться при каждом обращении к модулю
соответственно и импорты будут каждый раз осуществляться...
есть тут какая-нибудь тонкость?
I'm sorry for my English...
0

#4 User is offline   ineersa 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 284
  • Joined: 15-April 13
  • Location:Ukraine

Posted 03 March 2014 - 07:26 AM

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

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

#5 User is offline   styleroom 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 358
  • Joined: 14-January 12
  • Location:Долгопрудный, Россия

Posted 03 March 2014 - 07:51 AM

View Postineersa, on 03 March 2014 - 07:26 AM, said:

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

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

гут
спасибо за развернутый ответ
I'm sorry for my English...
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users