вызов пользовательского наблюдателя в fuelphp

я создаю собственный наблюдатель:

class Observer_Test extends Orm\Observer 
{    
    public function after_insert(Orm\Model $model)
    {
        \Log::info('Succesfully created new object of class '.get_class($model));
    }
}

я поместил этот код в app/classes/observer/test.php

и я позвонил из моей модели в app/classes/model/ этому наблюдателю

protected static $_observers = array(
     'Observer\Observer_Test' => array(
           'events' => array('after_insert'),
     ),            
); 

и я получил сообщение об ошибке, как это

ErrorException [Ошибка]: Неперехваченное исключение «Fuel\Core\FuelException» с сообщением «Невозможно создать или записать в файл журнала. Пожалуйста, проверьте разрешения на /Applications/XAMPP/xamppfiles/htdocs/MPOSSERVER/fuel/app/logs/' в /Applications/XAMPP/xamppfiles/htdocs/MPOSSERVER/fuel/core/classes/log.php:77 Трассировка стека: # 0 [внутренняя функция]: Fuel\Core\Log::_init() #1 /Applications/XAMPP/xamppfiles/htdocs/MPOSSERVER/fuel/core/classes/autoloader.php(364): call_user_func('Log::_init' ) #2 /Applications/XAMPP/xamppfiles/htdocs/MPOSSERVER/fuel/core/classes/autoloader.php(247): Fuel\Core\Autoloader::init_class('Log') #3 [внутренняя функция]: Fuel\Core \Autoloader::load('Журнал') #4 /Applications/XAMPP/xamppfiles/htdocs/MPOSSERVER/fuel/core/base.php(91): spl_autoload_call('Журнал') #5 /Applications/XAMPP/xamppfiles/htdocs /MPOSSERVER/fuel/core/classes/error.php(117): logger(400, 'Error — Observe...') #6/Applications/XAMPP/xamppfiles/htdocs/MPOSSERVER/fuel/core/bootstrap.php( 71): Fuel\Core\Error::exception_handler(Object(UnexpectedValueException))

Я думаю, что ошибся, когда назвал или поставил наблюдателя, каковы наилучшие методы создания наблюдателя?


person Dennis Farandy    schedule 22.10.2013    source источник


Ответы (1)


как я вижу, ошибка говорит о том, что недостаточно прав для записи в ту директорию, а сам обозреватель работает. чтобы убедиться, просто замените вызов Log::() на что-то вроде die('WORKS!'); вместо.

Чтобы исправить проблему, чтобы логи начали писать, попробуйте исправить права доступа к каталогу. Я не уверен, как MacOSX справляется с этим, но это может помочь вам ввести код здесь:

cd /Applications/XAMPP/xamppfiles/htdocs/MPOSSERVER

find . -type f -exec chmod 666 {} \;
find . -type d -exec chmod 777 {} \;

1-я команда сделает cd для вашего веб-проекта 2-я сделает все файлы в этом каталоге chmod на 666 (чтение/запись всеми) 3-я команда сделает чтение/запись/выполнение всеми

Надеюсь, это поможет. Удачи :)

person huglester    schedule 22.10.2013
comment
Вы также можете выполнить $ php oil r install в корневом каталоге приложения, чтобы установить все необходимые права доступа к файлам. - person Frank de Jonge; 22.10.2013