ホームページ > PHPフレームワーク > Laravel > Laravelイベントシステムの動作原理を解析する

Laravelイベントシステムの動作原理を解析する

藏色散人
リリース: 2021-12-29 14:46:06
転載
2138 人が閲覧しました

Laravel の次のチュートリアル コラムでは、Laravel イベント システムの動作原理を紹介します。

EventServiceProvider に登録します (app/Providers/EventServiceProvider.php)
protected $listen = [
        Registered::class => [
            SendEmailVerificationNotification::class,
        ],
        'App\Events\Test' => [
            'App\Listeners\EventListener',
        ],
    ];
ログイン後にコピー

コマンド ラインを使用してイベントとリスナーを生成します
$ php artisan event:generate
ログイン後にコピー

この時点で 2 つのファイルが生成されます

1、App/Events/Test.php (イベント)

イベントの編集
<?php

namespace App\Events;use App\Models\User;use Illuminate\Broadcasting\Channel;use Illuminate\Broadcasting\InteractsWithSockets;use Illuminate\Broadcasting\PresenceChannel;use Illuminate\Broadcasting\PrivateChannel;use Illuminate\Contracts\Broadcasting\ShouldBroadcast;use Illuminate\Foundation\Events\Dispatchable;use Illuminate\Queue\SerializesModels;class Test{
  use Dispatchable, InteractsWithSockets, SerializesModels;

  /**
 * Create a new event instance. * * @return void
 */  public function __construct($id)
 {  
     echo &#39;触发事件成功!---------&#39;.$id;
     $this->id = $id;
  }

  /**
 * Get the channels the event should broadcast on. * * @return \Illuminate\Broadcasting\Channel|array
 */  public function broadcastOn()
 {  return new PrivateChannel('channel-name');
  }}
ログイン後にコピー

2、app/Listeners/EmailVerified.php (リスナー)

リスナーの編集
<?php

namespace App\Listeners;
use App\Events\Test;use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
class EventListener{
  /**
 * Create the event listener. * * @return void
 */  public function __construct()
 {  //
  }

  public function handle(Test $event)
 {  
     echo &#39;监听成功!监听值:&#39;.$event->id;
 }}
ログイン後にコピー

コントローラーでイベントをトリガーする
public function test1(){
 event(new Test('11111111'));
 return '测试事件系统';}
ログイン後にコピー

一般的なコマンド
php artisan event:generate
php artisan make:event UserRegisteredEvent
php artisan make:listener SendMailListener --event="UserRegisteredEvent"
ログイン後にコピー

関連する推奨事項:

最新の 5 つの Laravel ビデオ チュートリアル#

以上がLaravelイベントシステムの動作原理を解析するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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