Сайт я построил по структуре описанной тут http://www.yiiframework.com/doc/cookbook/33/
Все отлично работает и таким разделением я доволен. Но возникла одна проблема. Потребовалось создать ссылку из админки на клиентскую часть. Проблема во первых в том что urlManager подставляет в ссылку admin.php вместо требуемого index.php. Во вторых правила преобразования url на находятся в конфиг файле frontend.
Я реализовал это таким образом.
class FrontendUrlManager extends CUrlManager {
private $_baseUrl;
public function __construct() {
$frontend=include(Yii::getPathOfAlias('frontend.config.main').'.php');
$config=$frontend['components']['urlManager'];
unset($config['class']);
foreach($config as $key=>$value)
$this->$key=$value;
}
public function getBaseUrl()
{
if($this->_baseUrl!==null)
return $this->_baseUrl;
else
{
if($this->showScriptName)
$this->_baseUrl=Yii::app()->getRequest()->getBaseUrl().'/index.php';
else
$this->_baseUrl=Yii::app()->getRequest()->getBaseUrl();
return $this->_baseUrl;
}
}
}
Использую сейчас так
Yii::app()->frontendUrlManager->createUrl(‘site/index’);
Решение пока устраивает но решил показать его тут. Быть может есть значительно лучший вариант.