先日仕事でLaravelのカスタムコンソールコマンドを書いてる時に、シグネチャのパラメータ処理が泥臭く感じてモジュール化できないかなーと思い、どんな時にどんな返り値になるのか調査したので、結果を残しておきます。
シグネチャ | 入力 | 取得 | 結果 |
---|---|---|---|
foo {key} | foo | - | エラー |
foo {key} | foo value | $this->argument('key'); | "value" |
foo {key?} | foo | $this->argument('key'); | null |
foo {key?} | foo value | $this->argument('key'); | "value" |
foo {key=default} | foo | $this->argument('key'); | "default" |
foo {key=default} | foo value | $this->argument('key'); | "value" |
foo {key*} | foo | - | エラー |
foo {key*} | foo value | $this->argument('key'); | ["value"] |
foo {--key} | foo | $this->option('key'); | false |
foo {--key} | foo --key | $this->option('key'); | true |
foo {--key} | foo --key=value | - | エラー |
foo {--key=} | foo | $this->option('key'); | null |
foo {--key=} | foo --key | $this->option('key'); | null |
foo {--key=} | foo --key=valie | $this->option('key'); | "value" |
foo {--key=default} | foo | $this->option('key'); | "default" |
foo {--key=default} | foo --key | $this->option('key'); | null |
foo {--key=default} | foo --key=value | $this->option('key'); | "value" |
foo {--key=*} | foo | $this->option('key'); | [] |
foo {--key=*} | foo --key | $this->option('key'); | [null] |
foo {--key=*} | foo --key=value | $this->option('key'); | ["value"] |