laravelのイベントとオブザーバーについて一緒に学びましょう!

藏色散人
リリース: 2021-08-18 09:01:53
転載
2261 人が閲覧しました

次のコラム laravel チュートリアル では、laravel のイベントとオブザーバーについて紹介します。

1: イベントとリスナー

イベントは比較的広い用語であり、実行されるアクションを表すことができます。イベントとともに表示されるのはリスナーです。リスナーは、ユーザーの行動を監視し、その後の動作に対する処理を実行するために使用されます。
イベント システムは、単一のイベントに互いに独立した複数のリスナーを持つことができるため、アプリケーションのさまざまな側面を分離する優れた方法を提供します。たとえば、注文が発送されるたびにユーザーに通知を送信することができます。注文処理コードを通知コードに結合する代わりに、リッスンできるイベントを作成できます。

イベント:
Laravel フレームワークがイベントを作成したい場合は、次のコマンドを使用して作成できます。

php artisan make:event 事件名称
ログイン後にコピー

ファイルは次の場所に保存されます。 app/Events ディレクトリ。

Listener:

リスナーの作成は、次のコマンドを使用して作成できます:

php artisan make:listener 监听器名称
ログイン後にコピー

Registration:

イベントとリスナーを作成したら、それらを結合する必要があります。これを EventServiceProvider サービス プロバイダーに登録できます。次のように:

    protected $listen = [
        事件名称 => [
            监听器名称,
         .
        ],
    ];
ログイン後にコピー

Distribution

event(new TestEvent());
ログイン後にコピー

2: モデル イベント

モデル イベントは、モデル専用に追加された追加機能です。対応するイベントとリスナーを作成します。モデル イベントを使用するときは、モデルによって与えられたルールに従う必要があります。

  • retrieved: モデル インスタンスを取得した後にトリガーされます
  • creating: データベースに挿入する前にトリガーされます。
  • created: データベースへの挿入後にトリガー
  • #updating: データベースへの更新前にトリガー
  • ##updated: データベースへの更新後にトリガー
  • ##saving:データベースに保存する前にトリガーされます (挿入/更新前は、挿入または更新に関係なくトリガーされます)
  • saved: データベースに保存された後にトリガーされます (挿入/更新後、挿入または更新に関係なくトリガーされます)
  • deleting: データベースからレコードを削除する前にトリガーされます
  • deleted: データベースからレコードを削除した後にトリガーされます
  • restoreing: 論理的に削除されたレコードを復元する前にトリガーされます
  • restored: 論理的に削除されたレコードの復元後にトリガーされます
  • モデルでバインドする必要があります
protected $dispatchesEvents = [
        'saving' => \App\Events\TestEvent::class,
//        'updated' => \App\Events\TestEvent::class,
];
ログイン後にコピー

3: オブザーバー

イベントが必要ですリスナーの数が増えると登録する必要があり、面倒なのでオブザーバーの使用を検討します。モデル上で複数のイベントをリッスンしている場合は、オブザーバーを使用してこれらのリスナーを別のクラスに編成できます。

オブザーバーの使用:

次のコマンドを使用してオブザーバーを作成できます:

php artisan make:observer
ログイン後にコピー

モデルに直接関連付けたい場合は、モデルに関連付けるパラメーターを直接追加することもできます:

php artisan make:observer UserObserver --model=User
ログイン後にコピー

オブザーバーの登録:

サービス プロバイダーに登録する

User::observe(UserObserver::class);
ログイン後にコピー

またはモデルに登録する
public static function booted()
{
     self::observe(UserObserver::class);
}
ログイン後にコピー

関連する推奨事項:
最新の 5 つの Laravel ビデオ チュートリアル

以上がlaravelのイベントとオブザーバーについて一緒に学びましょう!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:jianshu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート