【Laravel】オブザーバ(observer)
※下記の内容に不備がありましたら、コメント頂けると幸いです。また、下記の内容をご使用頂ける場合は自己責任でお願いします。
【目次】
背景
Laravelで出てくる「オブザーバ(observer)」がよく分からなかったので、記事にまとめてみます。
オブザーバ(observer)
オブザーバとは?
モデルを監視し、実行されるイベントに対応するメソッドを呼んでくれます。
イベントフックが多い場合に、イベントフックをまとめてオブザーバ(observer)に定義することができる。
なので、コントローラの肥大化を防ぐことができます。
使い方
・Observerのクラスを作成する
・クラス内で、イベントに対応する名前のメソッドを定義する
・定義したメソッドは、引数にモデルを受け取ります
・bootメソッドを使って、Observeメソッドを実行する
各イベントと同名のメソッドでやりたいことを定義する。
class UserObserver {
public function creating($model)
{
if ( ! $user->isValid()) return false;
}
}
監視したいモデルに対してObserveメソッドを使用する。
イベントフックを登録するには、bootメソッドも実行する必要がある。
Eloquentモデルが発行するイベント
オブザーバ(observer)がデフォルトで補足してくれるイベントのみ記載します。
・creating
・created
・updating
・updated
・saving
・saved
・deleting
・deleted
・restoring
・restored
・retrieved
参考
素晴らしい記事に感謝いたします。