🍎

Laravel11 eventコマンド

2024/12/10に公開

この記事は Laravel11にあるartisanコマンドを全部調べる Advent Calendar 2024 10日目の記事です。

今回はeventコマンドについて調べました。

環境

  • PHP 8.4.1
  • laravel/laravel 11.3.3
  • laravel/framework 11.33.2

event:cache

イベントクラス、リスナクラスのキャッシュファイルを作成する。

php artisan event:cache

実行するとイベントクラス、リスナクラスを1つにまとめたキャッシュファイル(bootstrap/cache/events.php)を作成します。

event:clear

キャッシュファイルを削除する。

php artisan event:clear

実行するとevent:cacheコマンドで作成したキャッシュファイル(bootstrap/cache/events.php)を削除します。

キャッシュファイルが存在している間はイベントクラス、リスナクラスを追加しても自動反映しないので必ずevent:clearコマンドを実行する必要があります。
(イベントの手動登録を行なっている場合はキャッシュファイルの有無は関係ないので反映します。)

event:list

イベントクラス、リスナクラスの一覧を表示する。

php artisan event:list

実行するとイベントクラス、リスナクラスの一覧が表示します。

オプション 説明
--event[=EVENT] イベントクラス名を指定
  • --eventにイベントクラス名を指定すると該当イベントクラスのみ表示します。

event:generate

不足しているイベントクラス、リスナクラスを作成する。

php artisan event:generate

実行するとLaravel10まではapp/Providers/EventServiceProvider.phpの$listenプロパティの配列に追加した未作成のイベントクラス、リスナクラスを作成します。
Laravel11からはapp/Providers/EventServiceProvider.phpが削除されたことで$listenプロパティに追加できないので実行はできますが何も起こらないです。
代わりmake:eventコマンド、make:listenerコマンドを使ってクラスを作成します。
また、event:generateコマンドは下記のプルリクエストの対応により、Laravel11ではlistコマンドを実行しても一覧には表示しないです。

https://github.com/laravel/framework/pull/50204

GitHubで編集を提案

Discussion