Для каждого модуля своя БД

Добрый день. Не подскажете как лучше сделать? У меня есть несколько модулей которые практически идентичны и наследуют модели корневого приложения. Но каждый модуль использует свою базу данных. Можно конечно раскопировать модели по модулям и переопределить getDbConnection(). Но как то не очень красиво получится. И никто случайно не знает как в модели можно получить имя текущего модуля что то наподобии Yii::app()->module->name?

Да и вообще как лучше делать международный сайт. Например exemple.com/ru/. ru лучше сделать модулем или как get переменной?

может


Yii::app()->getController()->getModule()

:rolleyes: (Международный сайт, имхо, лучше делать переопределением Yii::app()->language, соответственно на уровне бд при проектировании это надо учитывать)

Yii::app()->getController()->getModule() не сработало

У меня просто каждая страна будет в своей базе храниться, и exemple.com/ru/ я просто говорю какую базу надо использовать. А язык у меня выбирается:

Yii::app()->language = Yii::app()->request->preferredLanguage;

при инициализации приложения, ну или потом ручками его можно поменять.

Может это вам поможет.

Использование Active Record с несколькими БД

и еще

Используем много конфигураций в одном приложении

Например, создать несколько входных скриптов "index-ru.php" и "index-en.php" с разным конфигом а затем прописать через .htaccess какой запускать запросом exemple.com/ru/ а какой exemple.com/en/

Думая что при таком варианте даже не будет проблем с createUrl т.к. Yii спокойно встает в поддиректории, но надо проверить.


if(null!==(Yii::app()->getController()->getModule())){

  $module=$module->getId();

else

  $module='default';



а так сработало!?

Вот так работает:

public function getDbConnection()

   {


		$db = Yii::app()->controller->module->id;


   	return Yii::app()->$db;


   }

В зависимости от названия модуля происходит соединение с той или иной базой.