以下是我對事件使用的一些記錄
創建事件
執行以下命令,執行完成后,會在 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'=>'EventController@index']);