У модуля есть головной файл (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;
}
}
}
Проблем нет, setImport() по сути Yii::import() только для массива алиасов, а собственно Yii::import() насколько я помню, добавляет классы в в список для инклуда, если указан без force. Если с force, они сразу идут в classMap.
Так что насчет производительности не переживайте.
Насчет параметров - выносите то что внешнее в конфиг, остальное оставляйте. Главное при создании модуля помнить, что он должен переноситься без проблем в другое приложение. Все что зависит от приложения - в конфиг.