Laravel5でオリジナルのartisanコマンドをつくる

2018.1.20 (土)

実際につくるコマンドは、

php artisan foo:bar
fooobaaar

みたいなことで実行できるコマンドをつくります。取り急ぎここではechoするだけです。

artisanのコマンドクラスを作成する

php artisan make:command foobar

app/Console/Commands/foobar.phpが作成されます。これがコマンドを実行する際に読み込まれるクラスになります。

コマンドの詳細記述

app/Console/Commands/foobar.phpを開いて、修正変更します。

コマンド名

実際のコマンドは$signatureに設定します。これがすなわちコマンドになります。

protected $signature = 'foo:bar';

artisan listとかhelpで表示される概要も書いておくと便利です。(日本語で書けるのかな。いけました。)

protected $description = 'echo foobar command';

実行内容を記述する

実行されるのは、public function handle()です。ここでechoすれば標準出力に吐出されます。もっと複雑なものをつくる際も同じですね。

public function handle()
{
    echo "foobar\n";
}

基本構造はこれでOKです。

カーネルに登録する

app/Console/Kernel.phpにfoobarコマンドを登録します。

protected $commands = [
    \App\Console\Commands\foobar::class,
];