WebApplicationEndBehavior  runEnd Ошибка

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
shrekki
Сообщения: 40
Зарегистрирован: 2011.12.24, 13:21
Откуда: питер

WebApplicationEndBehavior  runEnd Ошибка

Сообщение shrekki »

На хабре был и остается лежать пост http://habrahabr.ru/post/117457/

Так вот, локально все работает на ура.

На серваке под 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;
    }    
        
} 
config.php

Код: Выделить всё

'behaviors'=>array(
                 'runEnd'=>array(
                                'class'=>'application.behaviors.WebApplicationEndBehavior',
                                ),
                          ),
ps скорее всего имеет место быть разные версии php.
На локалке 5.2.17 а на серваке 5.3.23

Проверил на другом линуксовом серваке с версией 2.3 там закрутилось.
так что скорее всего дело в версии. ТМЗ.

Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

Re: WebApplicationEndBehavior  runEnd Ошибка

Сообщение futbolim »

возможно что то с путями.
application.behaviors.WebApplicationEndBehavior - правильный путь ?

Аватара пользователя
lancecoder
Сообщения: 2532
Зарегистрирован: 2012.06.26, 17:16

Re: WebApplicationEndBehavior  runEnd Ошибка

Сообщение lancecoder »

shorttag

shrekki
Сообщения: 40
Зарегистрирован: 2011.12.24, 13:21
Откуда: питер

Re: WebApplicationEndBehavior  runEnd Ошибка

Сообщение shrekki »

linkup писал(а):возможно что то с путями.
application.behaviors.WebApplicationEndBehavior - правильный путь ?
Если локально работает, значит правильно, + работает на другом серваке.
lancecoder писал(а):shorttag
???


shrekki
Сообщения: 40
Зарегистрирован: 2011.12.24, 13:21
Откуда: питер

Re: WebApplicationEndBehavior  runEnd Ошибка

Сообщение shrekki »

Не, дело не в них :(

Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

Re: WebApplicationEndBehavior  runEnd Ошибка

Сообщение futbolim »

Если локально работает, значит правильно
Ну раз правильно, значит разберётесь сами ;)

webcoder
Сообщения: 2
Зарегистрирован: 2015.06.29, 12:49
Откуда: Молдова

Re: WebApplicationEndBehavior  runEnd Ошибка

Сообщение webcoder »

Не, дело не в них :(
А вчем, shrekki??? У меня такая же проблема.... Никак не могу разобраться в чем дело ((((

Ответить