0

私はカスタムオブザーバーを作成します:

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/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('Log') #4 /Applications/XAMPP/xamppfiles/htdocs/MPOSSERVER/fuel/core/base.php(91): spl_autoload_call('Log'

オブザーバーを呼び出したり配置したりするときに間違っていると思います。オブザーバーを作成するためのベストプラクティスは何ですか?

4

1 に答える 1

0

ご覧のとおり、エラーは、そのディレクトリに書き込むための十分な権限がなく、オブザーバー自体が機能していることを示しています。確認するには、Log::() 呼び出しを die('WORKS!'); のようなものに置き換えてください。代わりは。

この問題を解決してログの書き込みを開始するには、ディレクトリのアクセス許可を修正してみてください。MacOSXがこれをどのように処理するかはわかりませんが、これはコードを混乱させる可能性があります:

cd /Applications/XAMPP/xamppfiles/htdocs/MPOSSERVER

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

1 番目のコマンドは Web プロジェクトに cd します 2 番目はそのディレクトリ内のすべてのファイルを 666 に chmod します (全員による読み取り/書き込み) 3 番目のコマンドは全員による読み取り/書き込み/実行を行います

幸運を祈ります:)

于 2013-10-22T16:29:38.547 に答える