FuelPHP モデルに独自に実装したObserverを追加するには


公式ドキュメントの 独自のオブザーバーを書く で説明されていますが、改めてメモ。

// fuel/app/classes/observer/something.php
class Observer_Something extends Orm\Observer
{

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

これを Postモデルに適用する場合

<?php
//fuel/app/classes/model/post.php
use Orm\Model;

class Model_Post extends Model
{
    // ...
    protected static $_observers = array(
        'Orm\Observer_CreatedAt' =>; array(
            'events' =>; array('before_insert'),
            'mysql_timestamp' =>; false,
        ),
        'Orm\Observer_UpdatedAt' =>; array(
            'events' =>; array('before_save'),
            'mysql_timestamp' =>; false,
        ),
        'Observer_Somthing' =>; array(
            'events' =>; array('after_insert'),
        ),
    );
    // ...
}
,