laravel 添加触发事件

来源:互联网 发布:三维接线软件 编辑:程序博客网 时间:2024/06/05 23:41

laravel事件主要包括 事件类(app/Events下面),监听器 (app/Listeners),绑定事件和监听

1. 事件类一般格式如下:

class TestEvent{    use SerializesModels;    public $model;    /**     * Create a new event instance.     *     * @return void     */    public function __construct(Model $model)    {        //        $this->model = $model;    }    /**     * Get the channels the event should be broadcast on.     *     * @return array     */    public function broadcastOn()    {        return [];    }}

event下面如果是空,可以通过php artisan相关命令生成对应的类


2. 监听类一般格式如下:

class TestListener{    /**     * Create the event listener.     *     * @return void     */    public function __construct()    {        //    }    /**     * Handle the event.     *     * @param \Modules\Work\Events\WorkTimeOutEvent $event     * @return void     */    public function handle(TestEvent $event)    {        dd($event);//添加对应的逻辑处理    }}

3. 在EventServiceProvider 添加对应的事件和监听绑定

class EventServiceProvider extends ServiceProvider{    /**     * The event listener mappings for the application.     *     * @var array     */    protected $listen = [        'app\TestEvent' => [            'app\Listeners\TestListener',        ],    ];    /**     * Register any events for your application.     *     * @return void     */    public function boot()    {        parent::boot();        //    }}

4. 在代码中触发 可以使用event(new TestEvent($model)) 或者 \Event::fire(new TestEvent($model))触发对应的事件


在事件中一般还会涉及到 监听处理时间比较久,需要添加队列实现。另一个块就是添加个事件订阅者,监听多个事件。

具体参照学院教程:http://laravelacademy.org/post/6877.html


阅读全文
0 0