🌓

Laravelのinspireコマンドを使えなくする

2023/06/24に公開

はじめに

Laravelにはroutes/console.phpファイルがあります。
このファイルはクロージャーでコマンドを登録するために存在しています。
https://laravel.com/docs/10.x/artisan#closure-commands

で、はじめからinspireコマンドが登録されていますが、
これ使わないコマンドなので使えなくしてみます。

環境

  • PHP 8.2.7
  • Laravel 10.13.5

そもそもinspireコマンドってなに?

inspireコマンドのヘルプで説明を確認してみると、

$ php artisan inspire -h
Description:
  Display an inspiring quote

名言を出力するのコマンドですね。

試しに実行してみると、

$ php artisan inspire

  “ Knowing is not enough; we must apply. Being willing is not enough; we must do. ”
  — Leonardo da Vinci

$ php artisan inspire

  “ Nothing in life is to be feared, it is only to be understood. Now is the time to understand more, so that we may fear less. ”
  — Marie Curie

お言葉が出てきました。
何度か実行すると異なるお言葉が出てきましたね。

いつ作られたのか

Laravel5.0で作られてますね。
https://github.com/laravel/framework/blob/v5.0.0/src/Illuminate/Foundation/Inspiring.php

当時は5件だけでしたが、
最新のLaravel10(今回調べてバージョンは10.13.5)では39件まで増えていますね。
https://github.com/laravel/framework/blob/v10.13.5/src/Illuminate/Foundation/Inspiring.php#L71-L109

何のために追加したのか、そこまで調べる気にはならなかった。
(気が向けば追記します。)

では、使えなくしてみます

routes/console.phpに書かれているので、この中に書いてあるArtisan::commandを消すだけです。

routes/console.php
- Artisan::command('inspire', function () {
-     $this->comment(Inspiring::quote());
- })->purpose('Display an inspiring quote');

消すしたあとにinspireコマンドを実行すると、

$ php artisan inspire

   ERROR  Command "inspire" is not defined.  

コマンドの定義が消えたので実行できないです。

まとめ

あっても困らないけど、使わないコマンドはサクッと使えなくしておきましょう

おまけ

アスキーアートがあった
https://github.com/laravel/framework/blob/v10.13.5/src/Illuminate/Foundation/Inspiring.php#L7-L41

GitHubで編集を提案

Discussion