Laravel イベント

イベント発生の流れ

イベントを呼び出し

リスナーが実行される

イベント

ソースファイル自動生成

Laravel Artisanコマンド#ソース作成
イベント作成

処理

<?php

namespace App\Events;

class TestEvent
{
 use Dispatchable, InteractsWithSockets, SerializesModels;

 public $value;

 public function __construct()
 {
  $this->value = [
   'val1' => 'aaa',
   'val2' => 'bbb',
  ];
 }

 〜
}

リスナー

ソースファイル自動生成

Laravel Artisanコマンド#ソース作成
リスナー作成

処理

<?php

namespace App\Listeners;

use App\Events\TestEvent;

class TestListener
{
 〜

 public function handle(TestEvent $event)
 {
  echo($event->value['val1']);
  echo($event->value['val2']);
 }
}

イベントの登録

<?php

namespace App\Providers;

use App\Events\TestEvent;
use App\Listeners\TestListener;

class EventServiceProvider extends ServiceProvider
{
 protected $listen = [
  TestEventを呼び出すとTestListenerが実行される
  TestEvent::class => [
   TestListener::class,
  ],
 ];

 〜
}

イベントの呼び出し

<?php

namespace App\Http\Controllers;

use App\Events;
use App\Events\TestEvent;

class HomeController extends Controller
{
 public function index(Request $request)
 {
  event(new TestEvent());
  →TestLister#handleが実行される
 }
}

Follow me!

前の記事

Laravel ミドルウェア

次の記事

Laravel バッチ