@@ -46,7 +46,7 @@ private function __construct()
46
46
public static function serialize (
47
47
InputDefinition $ commandDefinition ,
48
48
InputInterface $ input ,
49
- array $ excludedOptionNames
49
+ array $ excludedOptionNames,
50
50
): array {
51
51
$ filteredOptions = array_diff_key (
52
52
RawInput::getRawOptions ($ input ),
@@ -78,36 +78,32 @@ private static function serializeOption(
78
78
string $ name ,
79
79
array |bool |float |int |string |null $ value ,
80
80
): string |array {
81
- if ($ option ->isNegatable ()) {
82
- return sprintf (
83
- '--%s%s ' ,
84
- $ value ? '' : 'no- ' ,
85
- $ name ,
86
- );
87
- }
88
-
89
- if (!$ option ->acceptValue ()) {
90
- return sprintf (
91
- '--%s ' ,
92
- $ name ,
93
- );
94
- }
95
-
96
- if ($ option ->isArray ()) {
97
- /** @var array<string|bool|int|float|null> $value */
98
- return array_map (
81
+ return match (true ) {
82
+ $ option ->isNegatable () => sprintf ('--%s%s ' , $ value ? '' : 'no- ' , $ name ),
83
+ !$ option ->acceptValue () => sprintf ('--%s ' , $ name ),
84
+ self ::isArray ($ option , $ value ) => array_map (
99
85
static fn ($ item ) => self ::serializeOptionWithValue ($ name , $ item ),
100
86
$ value ,
101
- );
102
- }
87
+ ),
88
+ default => self ::serializeOptionWithValue ($ name , $ value ),
89
+ };
90
+ }
103
91
104
- /** @var string|bool|int|float|null $value */
105
- return self ::serializeOptionWithValue ($ name , $ value );
92
+ /**
93
+ * @param string|bool|int|float|null|array<string|bool|int|float|null> $value
94
+ *
95
+ * @phpstan-assert-if-true array<string|bool|int|float|null> $value
96
+ */
97
+ private static function isArray (
98
+ InputOption $ option ,
99
+ array |bool |float |int |string |null $ value ,
100
+ ): bool {
101
+ return $ option ->isArray ();
106
102
}
107
103
108
104
private static function serializeOptionWithValue (
109
105
string $ name ,
110
- bool |float |int |string |null $ value
106
+ bool |float |int |string |null $ value,
111
107
): string {
112
108
return sprintf (
113
109
'--%s=%s ' ,
0 commit comments