21
21
use function array_keys ;
22
22
use function array_map ;
23
23
use function array_merge ;
24
- use function is_array ;
25
24
use function sprintf ;
26
25
27
26
/**
@@ -51,13 +50,11 @@ public static function serialize(
51
50
$ serializedOptionsList = [];
52
51
53
52
foreach (array_keys ($ filteredOptions ) as $ name ) {
54
- $ serializedOption = self ::serializeOption (
53
+ $ serializedOptionsList [] = self ::serializeOption (
55
54
$ commandDefinition ->getOption ($ name ),
56
55
$ name ,
57
56
$ filteredOptions [$ name ],
58
57
);
59
-
60
- $ serializedOptionsList [] = is_array ($ serializedOption ) ? $ serializedOption : [$ serializedOption ];
61
58
}
62
59
63
60
return array_merge (...$ serializedOptionsList );
@@ -66,33 +63,25 @@ public static function serialize(
66
63
/**
67
64
* @param string|bool|int|float|null|array<string|bool|int|float|null> $value
68
65
*
69
- * @return string| list<string>
66
+ * @return list<string>
70
67
*/
71
68
private static function serializeOption (
72
69
InputOption $ option ,
73
70
string $ name ,
74
71
array |bool |float |int |string |null $ value ,
75
- ): string | array {
72
+ ): array {
76
73
return match (true ) {
77
- $ option ->isNegatable () => sprintf ('--%s%s ' , $ value ? '' : 'no- ' , $ name ),
78
- !$ option ->acceptValue () => sprintf ('--%s ' , $ name ),
79
- self ::isArray ($ option , $ value ) => array_map (static fn ($ item ) => self ::serializeOptionWithValue ($ name , $ item ), $ value ),
80
- default => self ::serializeOptionWithValue ($ name , $ value ),
74
+ $ option ->isNegatable () => [sprintf ('--%s%s ' , $ value ? '' : 'no- ' , $ name )],
75
+ !$ option ->acceptValue () => [sprintf ('--%s ' , $ name )],
76
+ /** @var list<string|bool|int|float|null> $value */
77
+ // @phpstan-ignore-next-line argument.type
78
+ $ option ->isArray () => array_map (static fn ($ item ) => self ::serializeOptionWithValue ($ name , $ item ), $ value ),
79
+ /** @var string|int|float|null $value */
80
+ // @phpstan-ignore-next-line argument.type
81
+ default => [self ::serializeOptionWithValue ($ name , $ value )],
81
82
};
82
83
}
83
84
84
- /**
85
- * @param string|bool|int|float|null|array<string|bool|int|float|null> $value
86
- *
87
- * @phpstan-assert-if-true array<string|bool|int|float|null> $value
88
- */
89
- private static function isArray (
90
- InputOption $ option ,
91
- array |bool |float |int |string |null $ value ,
92
- ): bool {
93
- return $ option ->isArray ();
94
- }
95
-
96
85
private static function serializeOptionWithValue (
97
86
string $ name ,
98
87
bool |float |int |string |null $ value ,
0 commit comments