Laravelをコマンドラインから実行する方法

やりたいこと

Laravelをコマンドラインから操作・実行したい。
今回は以下のように実行すると、コマンド名・引数・オプションを表示するだけのコマンドを作成する。

環境

さくらのレンタルサーバ スタンダード
PHP 5.4.29
Laravel 4.2.8

やり方

Laravelのルートディレクトリを「/LARAVEL-ROOT/」とする。
1. artisanでコマンドのスタブを作成する。
2. 作成したスタブをartisan.phpに登録する。
3. スタブに処理を記述する。
4. 確認する。

1. artisanでコマンドのスタブを作成する。

「php artisan command:make <スタブ(クラス)名>」を実行する。

「command:make」はArtisanコマンドを作成する際のオプション。
「CommandTest」はスタブとなるクラス名(ファイル名)なのでなんでもOK。
上記の場合だと「/LARAVEL-ROOT/app/commands/CommandTest.php」が作成される。
この「CommandTest.php」に実行したい処理を記述する。

2. 作成したスタブをartisan.phpに登録する。

「/LARAVEL-ROOT/app/start/artisan.php」に「CommandTest」を登録する。

3. スタブに処理を記述する。

1で作成された「/LARAVEL-ROOT/app/commands/CommandTest.php」を変更する。

14行目: protected $name

php artisanでコマンド実行する際のコマンド名になる。
今回は「foo:bar」としているが、「hoge」でも「hoge:fuga:piyo」でもなんでもよい。(多分)

21行目: protected $description

「php artisan list」を実行した際の説明に出てくる。

40-45行目: public function fire()

実際に実行されるコマンド処理の本体。
今回は引数とオプションを表示しているだけ。

56,57行目: protected function getArguments()

コマンド引数を設定するところ。
細かいことはArtisan Developmentの「Arguments & Options」で。

69,70行目: protected function getOptions()

コマンドオプションを設定するところ。
細かいことはArtisan Developmentの「Arguments & Options」で。

4. 確認する。

実際にコマンドを叩いてみる。

helpとかquietはデフォルトで設定されているものなのかな。