laravel 事件的使用案例

Posted zeopean

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel 事件的使用案例相关的知识,希望对你有一定的参考价值。

以下是我对事件使用的一些记录

创建事件

执行以下命令,执行完成后,会在 app\Events 下面出现一个 DeleteEvent.php 文件,事件就在次定义

php artisan make:event DeleteEvent

  

编写事件
#DeleteEvent.php
<?php

namespace App\Events;

use App\Events\Event;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class DeleteEvent extends Event
{
    use SerializesModels;

    public function __construct()
    {
        //
    }

    public function broadcastOn()
    {
        print ‘delete event‘;
    }
}

  

 
创建监听listener

执行以下命令,执行完成后,会在 app\Listeners 下面出现一个 DeleteEventListener.php 文件,是对事件 DeleteEvent的监听

php artisan make:listener --event=DeleteEvent  DeleteEventListener

  

编写事件监听
#DeleteEventListener.php
<?php

namespace App\Listeners;

use App\Events\DeleteEvent;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;

class DeleteEventListener
{
    public function __construct()
    {
        //
    }

    public function handle(DeleteEvent $event)
    {
        //
        $event->broadcastOn();
    }
}

  

 
调用事件-在控制器使用
#EventController.php
<?php

namespace App\Http\Controllers;

use App\Events\DeleteEvent;
use App\Events\SomeEvent;
use Illuminate\Http\Request;

use App\Http\Requests;

class EventController extends Controller
{
    //
    public function index()
    {
//        event(new SomeEvent());       //框架默认调用broadcastOn()

        $event = new DeleteEvent();     //自定义 
        event($event->broadcastOn());
    }
}

  

 
编写路由
#routes.php
Route::get(‘/event‘,[‘uses‘=>‘[email protected]‘]);

  

 

以上是关于laravel 事件的使用案例的主要内容,如果未能解决你的问题,请参考以下文章

laravel特殊功能代码片段集合

Laravel:如何在控制器的几种方法中重用代码片段

如何使用事件侦听器来加载动画片段的循环

在案例演示中嵌入片段

Android 事件分发事件分发源码分析 ( Activity 中各层级的事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup )(代码片段

脚本 php artisan 优化处理使用 laravel 5.4 返回的 post-update-cmd 事件,错误代码为 1