雑多なブログ

音楽や語学、プログラム関連の話題について書いています

Laravel: コンソールコマンドとして実行されいているか判別

コントローラーのコンストラクターに処理を記述している場合に、 下記コマンドを実行するとコントローラーのコンストラクターに記述していた処理が実行されてしまう現象に遭遇しました。

php artisan route:list

それならばと、コンソールコマンドで実行されているかどうか判別して、コンソールコマンドの場合は処理を行わないようにする方向で実装する事にしました。

判定方法は下記の通りです。いずれも呼び出しているメソッドは同じみたいです。

appヘルパーを使う

app()->runningInConsole();

ファサードを使う

App::runningInConsole()

コントローラー内でappを参照する

$this->app->runningInConsole();