您的位置 首页 php

解析Laravel事件系统的运行原理

下面由Laravel教程栏目给大家介绍关于Laravel事件系统的运行原理,希望对大家有所帮助!

在 EventServiceProvider 里注册(app/Providers/EventServiceProvider.php)

protected $listen = [        Registered::class => [            SendEmailVerificationNotification::class,        ],        'App\Events\Test' => [            'App\Listeners\EventListener',        ],    ];

使用命令行来生成事件与监听器

$ php artisan event:generate

此时将生成两个文件

1、App/Events/Test.php(事件)

编辑事件

<?phpnamespace 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 '触发事件成功!---------'.$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(监听器)

编辑监听器

<?phpnamespace 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 '监听成功!监听值:'.$event->id; }}

在控制器中触发事件

public function test1(){ event(new Test('11111111')); return '测试事件系统';}

常用命令

php artisan event:generatephp artisan make:event UserRegisteredEventphp artisan make:listener SendMailListener --event="UserRegisteredEvent"

相关推荐:最新的五个Laravel视频教程

文章来源:智云一二三科技

文章标题:解析Laravel事件系统的运行原理

文章地址:https://www.zhihuclub.com/24133.shtml

关于作者: 智云科技

热门文章

网站地图