【Laravel】console.phpに登録する形で、オリジナルartisanコマンド作ってみた
| 更新: 2025/01/31 | 2173文字

今回は、PHPフレームワークLaravelを使って、オリジナルartisanコマンドを作ってみます。黒い画面で文字だけ出てきているような、あれですね。なんか難易度高そうな感じがしますけど、Laravel搭載の機能を使って、サックリ作ってみたいと思います。さっそく内容を確認していきましょう。
目次
Laravelのartisanコマンドとは?
普段我々がPCでつかう操作画面があるアプリ(GUI-グラフィカルユーザーインターフェース)の他に、黒い画面でコマンド打って操作するCLI(コマンドラインインターフェース)というのがあります。artisanはLaravelに搭載されているCLI/コマンド機能です。当サイトでも『php artisan make:controller 〇〇〇(コントローラ名)』とか打って、ひな形を用意したりしていました。
このほかにもartisanコマンドには便利なものがあって、例えば・・
『php artisan -v』でバージョンや各種情報をしらべたりとか。
『ルーティングに何入れたか忘れた』みたいなときは・・
『php artisan route:list』で現在のルーティング一覧を確認できたりします。
この他にもデータベース操作(マイグレーションとか)もあるので、頻出のものは覚えておくと作業がはかどると思います。 (*なお、artisanを使うときはcdのコマンドでLaravelのディレクトリに入りましょう)
Laravel 10.x Artisanコンソール
https://readouble.com/laravel/10.x/ja/artisan.html
まずは、routes/console.phpのサンプルコマンドを確認しよう
で、Laravelプログラミングの書籍や公式ドキュメントをいろいろ読んでみてわかったのは、『Closure Commandsが、わりとサックリ実装できそう』という点でした。
Closure Commandsのサンプルがroutes/console.phpにあるので見てみましょう。
何も手をつけていない状態のconsole.phpです。
サンプル的な感じで『inspireコマンドが登録されている』という点が確認できると思います。このコマンドを叩いてみましょうか。
コマンドを叩いたところ、上で設定されていた文字列が出力されてきました。今回はこんな感じで文字列出力コマンド作ってみます。
Artisan Console Closure Commands(laravel公式・英語)
https://laravel.com/docs/11.x/artisan#closure-commands
オリジナルartisanコマンドをconsole.phpに登録
サンプルと似たような感じですが、『コンソールに顔文字を出力する』というartisanコマンドを登録してみました。コマンド名は『mshp0723emoticon:closure』で、commentが出力される部分、describeに概要を書いています。コードは以下の通り。
$this->comment('(*´・д・) (*´・д・) (*´・д・) (*´・д・) (*´・д・)');
})
->describe('クロージャによるオリジナルartisanコマンド');
コードを書いたあとは、『php artisan list』のコマンドを叩いて、これが登録されているかを確認します。
mshp0723emoticonが登録されていました。これでオリジナルartisanコマンドを実行できます。
コマンド実行の結果
先ほど作ったartisanコマンドを入力します。
顔文字出力ok!
割とサックリでしたが、顔文字を出力するオリジナルartisanコマンドのできあがり。文字列出力以外にも、データベース通信やAPIから情報取ってくるとか、使い道もありそうな気がしますね。
あとがき・まとめ
- Laravelにはartisanというコマンド機能が搭載されている
- オリジナルartisanコマンドを作ることもでき、Closureコマンドで文字列出力するだけなら、console.phpに書くだけで実装できた
まとめると、こんなところでしょうか。この後も『closureじゃなくcommandクラスでやる』『文字列出力以外の機能をつけてみる』なども、やってみたいところです。