Так вот, локально все работает на ура.
На серваке под FreeBSD почему-то выскакивает ошибка
Код: Выделить всё
CWebApplication and its behaviors do not have a method or closure named "runEnd".
Код: Выделить всё
<?php
$yii = 'framework/yii/yii.php';
$config = 'protected/config/frontend.php';
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL', 3);
require_once($yii);
// стартуем приложение с помощью нашего WebApplicaitonEndBehavior, указав ему, что нужно загрузить фронтенд!!
Yii::createWebApplication($config)->runEnd('frontend');
вот код
Код: Выделить всё
<?
class WebApplicationEndBehavior extends CBehavior
{
// имя нужной нам части сайта
private $_endName;
// геттер $_endName;
public function getEndName()
{
return $this->_endName;
}
// запуск приложения
public function runEnd($name)
{
$this->_endName = $name;
// echo $Name;
// обрабатываем событие создания модуля
$this->onModuleCreate = array($this, 'changeModulePaths');
$this->onModuleCreate(new CEvent ($this->owner));
$this->owner->run();
}
// обработчик события onModuleCreate
public function onModuleCreate($event)
{
$this->raiseEvent('onModuleCreate', $event);
}
// подменяем пути к файлам
// чтобы брались из нужных нам директорий
// либо frontend либо backend
protected function changeModulePaths($event)
{
// добавляем название части сайта (frontend или backend) в путь, по которому фреймворк будет искать контроллеры и вьюшки
$event->sender->controllerPath .= DIRECTORY_SEPARATOR.$this->_endName;
$event->sender->viewPath .= DIRECTORY_SEPARATOR.$this->_endName;
}
}
Код: Выделить всё
'behaviors'=>array(
'runEnd'=>array(
'class'=>'application.behaviors.WebApplicationEndBehavior',
),
),
На локалке 5.2.17 а на серваке 5.3.23
Проверил на другом линуксовом серваке с версией 2.3 там закрутилось.
так что скорее всего дело в версии. ТМЗ.