本文では 引数 (arguments) については触れない。
結論から言うと、
$this->call('command:name', ['-o' => null]);
のように指定する。
コマンドとオプションについて
コマンド というのは、
$ php artisan foo --option
という形式でシェル上で実行されるプログラム。
php artisan command:make FooCommand
という感じで作れる。
作り方は、 http://laravel.com/docs/4.2/commands に書かれている。
オプションというのは、
$ php artisan foo --option=bar --option=baz
というコマンドがあったとして、
--option=bar
や --option=baz
の部分のこと。
オプションの値 (value) というのは、上記の bar
や baz
の部分。
このオプションの値には、「値なし」という形式も指定できて、
php artisan foo --option
という書式も実現できる。
オプションの形式には「値なし」も含めて
- InputOption::VALUE_NONE: 値なし
- (
-o
または--option
のようにオプション名のみを指定する)
- (
- InputOption::VALUE_REQUIRED: 必須
- InputOption::VALUE_OPTIONAL: 任意
- InputOption::VALUE_IS_ARRAY: 複数
がある。
コマンドプログラム内部から別のコマンドを呼び出す際に、オプションに「値なし」を指定したい
http://laravel.com/docs/4.2/commands#calling-other-commands に書いてあるように、
php artisan command:make FooCommand
で作られたコマンド用クラスには、
$this->call('command:name', array('argument' => 'foo', '--option' => 'bar'));
と書くことで別のコマンドを呼び出せる。
上記はオプションの 値がある から、'--option' => 'bar'
みたいに書く。
値なし = InputOption::VALUE_NONE
を指定している場合
冒頭に書いたように、 配列のキーにオプションの名前、値に null
を指定する。
$this->call('foo:command', ['-o' => null]);
これで、
php artisan command:name -o
したのと同じになる。
(-o
について: オプションには省略記法も設定できるのでハイフンが1つのオプションをここでは引き合いに出している)
以上。