спасибо большое за помощь, попытался сделать как вы написали, к последнему примеру изменил для функции init() такие строчки
$_config = require dirname(__FILE__).DIRECTORY_SEPARATOR.'config.php';
$this->configure($_config);
но всё же ошибка появлялась та же самая нет определения title и указывала на строку
parent::__set($name, $value);
Вообщем, решил сделать отдельным компонентом, который подгружает конфиги каждого модуля, название модуля является массивом, а его параметры элементами, вот что получилось:
подключаем компонент в главном конфиге
protected/config/main.php
'components'=>array(
'par'=>array(
'class'=>'application.extensions.par.par',
),
),
компонент загружаем в директорию расширений
protected/extensions/par/par.php
class Par extends CApplicationComponent
{
public function loadParams()
{
$dir = YiiBase::getPathOfAlias('application.modules');
$dh = opendir($dir);
$files = array();
while (false !== ($filename = readdir($dh)))
{
if ($filename != '.' && $filename != '..')
{
if (is_dir($dir.'/'.$filename))
{
Yii::app()->setParams(
array(
$filename => require($dir.'/'.$filename.'/config.php')
)
);
}
}
}
}
}
в главном базовом контролере загружаем конфиги
protected/components/BaseController.php
class BaseController extends CController {
public function init()
{
Yii::app()->par->loadParams();
}
}
пример конфига
protected/modules/news/config.php
<?php
return array(
'title'=>'My module News'
);
пользуемся в любом месте приложения
echo Yii::app()->getParams()->news['title'];
хотелось бы узнать у специалистов, правильно ли всё сделано, точнее в базовом контроллере правильно было подгружено? Так-то проверил всё работает вроде отлично