5
4

More than 5 years have passed since last update.

laravelのartisan コマンドで 引数・オプションの新記法まとめ

Posted at

artisanコマンドの新記法

Laravel 5.1くらいから Command クラスに signatureというプロパティが追加されました。

従来getArgumentsや getOptionsで指定していた複雑な引数、オプションの管理をシンプルに表記できる 独自記法 です。

独自記法ということで若干使用を避けていたのですが、覚えてみると非常に楽だったので、備忘ついでに記載しておきます。

引数の記述

protected $signature = 'email:send {user}';

基本の記述はこちら。従来nameに指定していたコマンドの名前に加えて、{}で引数のプレイすホルダを追加すると引数の設定になります。

オプション引数

?をつけると必須でないオプションの引数になります。デフォルト値をセットする際には=を利用します。

protected $signature = 'email:send {user?}';
protected $signature = 'email:send {user=foo}';

オプションの記述

オプションは{--}で記述します。デフォルトではオプションはフラグ(true or false)として解釈されます。

protected $signature = 'email:send {--queue}';

値を取る引数

値を取る引数は、末尾に=をつけて記述します。デフォルト値を続けることも可能です。

protected $signature = 'email:send {--queue=}';
protected $signature = 'email:send {--queue=default}';

long option / short option

|記号を用いることで、オプションに省略名を用いる事が出来ます。

protected $signature = 'email:send {--Q|queue}';

Description

ヘルプメッセージ向けの説明メッセージは:記号に続けて記述することが出来ます。

protected $signature = 'email:send
                        {user : The ID of the user}
                        {--queue= : Whether the job should be queued}';
5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4