8000 fix · symfony/symfony@085c263 · GitHub
[go: up one dir, main page]

Skip to content

Commit 085c263

Browse files
committed
fix
1 parent b1a446c commit 085c263

File tree

5 files changed

+62
-89
lines changed

5 files changed

+62
-89
lines changed

src/Symfony/Component/Console/Input/Input.php

Lines changed: 16 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public function validate(): void
6363
$definition = $this->definition;
6464
$givenArguments = $this->arguments;
6565

66-
$missingArguments = array_filter(\array_keys($definition->getArguments()), fn ($argument) => !\array_key_exists($argument, $givenArguments) && $definition->getArgument($argument)->isRequired());
66+
$missingArguments = array_filter(array_keys($definition->getArguments()), fn ($argument) => !\array_key_exists($argument, $givenArguments) && $definition->getArgument($argument)->isRequired());
6767

6868
if (\count($missingArguments) > 0) {
6969
throw new RuntimeException(\sprintf('Not enough arguments (missing: "%s").', implode(', ', $missingArguments)));
@@ -89,29 +89,12 @@ public function getArguments(): array
8989
* Returns all the given arguments NOT merged with the default values.
9090
*
9191
* @param bool $strip Whether to return the raw parameters (false) or the values after the command name (true)
92-
*
93-
* @return array<string|bool|int|float|null|array<string|bool|int|float|null>>
92+
*z
93+
* @return array<string|bool|int|float|array<string|bool|int|float|null>|null>
9494
*/
95-
public function getRawArguments(bool $strip = false): array
95+
public function getRawArguments(): array
9696
{
97-
if (!$strip) {
98-
return $this->arguments;
99-
}
100-
101-
$arguments = [];
102-
$keep = false;
103-
foreach ($this->arguments as $argument) {
104-
if (!$keep && $argument === $this->getFirstArgument()) {
105-
$keep = true;
106-
107-
continue;
108-
}
109-
if ($keep) {
110-
$arguments[] = $argument;
111-
}
112-
}
113-
114-
return $arguments;
97+
return $this->arguments;
11598
}
11699

117100
public function getArgument(string $name): mixed
@@ -145,7 +128,7 @@ public function getOptions(): array
145128
/**
146129
* Returns all the given options NOT merged with the default values.
147130
*
148-
* @return array<string|bool|int|float|null|array<string|bool|int|float|null>>
131+
* @return array<string|bool|int|float|array<string|bool|int|float|null>|null>
149132
*/
150133
public function getRawOptions(): array
151134
{
@@ -224,10 +207,10 @@ public function unparse(array $optionNames = []): array
224207
{
225208
$rawOptions = $this->getRawOptions();
226209

227-
$filteredRawOptions = count($optionNames) === 0
210+
$filteredRawOptions = 0 === \count($optionNames)
228211
? $rawOptions
229212
: array_intersect_key($rawOptions, array_fill_keys($optionNames, ''),
230-
);
213+
);
231214

232215
return array_map(
233216
fn (string $optionName) => $this->unparseOption(
@@ -240,27 +223,25 @@ public function unparse(array $optionNames = []): array
240223
}
241224

242225
/**
243-
* @param string|bool|int|float|null|array<string|bool|int|float|null> $value
226+
* @param string|bool|int|float|array<string|bool|int|float|null>|null $value
244227
*/
245228
private function unparseOption(
246229
InputOption $option,
247230
string $name,
248231
array|bool|float|int|string|null $value,
249-
): string
250-
{
251-
return match(true) {
252-
$option->isNegatable() => sprintf('--%s%s', $value ? '' : 'no-', $name),
253-
!$option->acceptValue() => sprintf('--%s', $name),
254-
$option->isArray() => implode('', array_map(fn($item) => $this->unparseOptionWithValue($name, $item), $value,)),
232+
): string {
233+
return match (true) {
234+
$option->isNegatable() => \sprintf('--%s%s', $value ? '' : 'no-', $name),
235+
!$option->acceptValue() => \sprintf('--%s', $name),
236+
$option->isArray() => implode('', array_map(fn ($item) => $this->unparseOptionWithValue($name, $item), $value)),
255237
default => $this->unparseOptionWithValue($name, $value),
256238
};
257239
}
258240

259241
private function unparseOptionWithValue(
260242
string $name,
261243
bool|float|int|string|null $value,
262-
): string
263-
{
264-
return sprintf('--%s=%s', $name, $this->escapeToken($value));
244+
): string {
245+
return \sprintf('--%s=%s', $name, $this->escapeToken($value));
265246
}
266247
}

src/Symfony/Component/Console/Input/InputInterface.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
* @author Fabien Potencier <fabien@symfony.com>
2121
*
2222
* @method getRawArguments(bool $strip = false): array<string|bool|int|float|null|array<string|bool|int|float|null>> Returns all the given arguments NOT merged with the default values.
23-
* @method getRawOptions(): array<string|bool|int|float|null|array<string|bool|int|float|null>> Returns all the given options NOT merged with the default values.
23+
* @method getRawOptions(): array<string|bool|int|float|array<string|bool|int|float|null>|null> Returns all the given options NOT merged with the default values.
2424
*/
2525
interface InputInterface
2626
{

src/Symfony/Component/Console/Tests/Input/ArgvInputTest.php

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,17 @@ public function testConstructor()
2626
$r = new \ReflectionObject($input);
2727
$p = $r->getProperty('tokens');
2828

29-
$this->assertSame(['foo'], $p->getValue($input), '__construct() automatically get its input from the argv server variable');
29+
$this->assertEquals(['foo'], $p->getValue($input), '__construct() automatically get its input from the argv server variable');
3030
}
3131

3232
public function testParseArguments()
3333
{
3434
$input = new ArgvInput(['cli.php', 'foo']);
3535
$input->bind(new InputDefinition([new InputArgument('name')]));
36-
$this->assertSame(['name' => 'foo'], $input->getArguments(), '->parse() parses required arguments');
36+
$this->assertEquals(['name' => 'foo'], $input->getArguments(), '->parse() parses required arguments');
3737

3838
$input->bind(new InputDefinition([new InputArgument('name')]));
39-
$this->assertSame(['name' => 'foo'], $input->getArguments(), '->parse() is stateless');
39+
$this->assertEquals(['name' => 'foo'], $input->getArguments(), '->parse() is stateless');
4040
}
4141

4242
/**
@@ -57,7 +57,7 @@ public function testParseOptionsNegatable($input, $options, $expectedOptions, $m
5757
{
5858
$input = new ArgvInput($input);
5959
$input->bind(new InputDefinition($options));
60-
$this->assertSame($expectedOptions, $input->getOptions(), $message);
60+
$this->assertEquals($expectedOptions, $input->getOptions(), $message);
6161
}
6262

6363
public static function provideOptions()
@@ -363,19 +363,19 @@ public function testParseArrayArgument()
363363
$input = new ArgvInput(['cli.php', 'foo', 'bar', 'baz', 'bat']);
364364
$input->bind(new InputDefinition([new InputArgument('name', InputArgument::IS_ARRAY)]));
365365

366-
$this->assertSame(['name' => ['foo', 'bar', 'baz', 'bat']], $input->getArguments(), '->parse() parses array arguments');
366+
$this->assertEquals(['name' => ['foo', 'bar', 'baz', 'bat']], $input->getArguments(), '->parse() parses array arguments');
367367
}
368368

369369
public function testParseArrayOption()
370370
{
371371
$input = new ArgvInput(['cli.php', '--name=foo', '--name=bar', '--name=baz']);
372372
$input->bind(new InputDefinition([new InputOption('name', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY)]));
373373

374-
$this->assertSame(['name' => ['foo', 'bar', 'baz']], $input->getOptions(), '->parse() parses array options ("--option=value" syntax)');
374+
$this->assertEquals(['name' => ['foo', 'bar', 'baz']], $input->getOptions(), '->parse() parses array options ("--option=value" syntax)');
375375

376376
$input = new ArgvInput(['cli.php', '--name', 'foo', '--name', 'bar', '--name', 'baz']);
377377
$input->bind(new InputDefinition([new InputOption('name', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY)]));
378-
$this->assertSame(['name' => ['foo', 'bar', 'baz']], $input->getOptions(), '->parse() parses array options ("--option value" syntax)');
378+
$this->assertEquals(['name' => ['foo', 'bar', 'baz']], $input->getOptions(), '->parse() parses array options ("--option value" syntax)');
379379

380380
$input = new ArgvInput(['cli.php', '--name=foo', '--name=bar', '--name=']);
381381
$input->bind(new InputDefinition([new InputOption('name', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY)]));
@@ -393,20 +393,20 @@ public function testParseNegativeNumberAfterDoubleDash()
393393
{
394394
$input = new 10000 ArgvInput(['cli.php', '--', '-1']);
395395
$input->bind(new InputDefinition([new InputArgument('number')]));
396-
$this->assertSame(['number' => '-1'], $input->getArguments(), '->parse() parses arguments with leading dashes as arguments after having encountered a double-dash sequence');
396+
$this->assertEquals(['number' => '-1'], $input->getArguments(), '->parse() parses arguments with leading dashes as arguments after having encountered a double-dash sequence');
397397

398398
$input = new ArgvInput(['cli.php', '-f', 'bar', '--', '-1']);
399399
$input->bind(new InputDefinition([new InputArgument('number'), new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL)]));
400-
$this->assertSame(['foo' => 'bar'], $input->getOptions(), '->parse() parses arguments with leading dashes as options before having encountered a double-dash sequence');
401-
$this->assertSame(['number' => '-1'], $input->getArguments(), '->parse() parses arguments with leading dashes as arguments after having encountered a double-dash sequence');
400+
$this->assertEquals(['foo' => 'bar'], $input->getOptions(), '->parse() parses arguments with leading dashes as options before having encountered a double-dash sequence');
401+
$this->assertEquals(['number' => '-1'], $input->getArguments(), '->parse() parses arguments with leading dashes as arguments after having encountered a double-dash sequence');
402402
}
403403

404404
public function testParseEmptyStringArgument()
405405
{
406406
$input = new ArgvInput(['cli.php', '-f', 'bar', '']);
407407
$input->bind(new InputDefinition([new InputArgument('empty'), new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL)]));
408408

409-
$this->assertSame(['empty' => ''], $input->getArguments(), '->parse() parses empty string arguments');
409+
$this->assertEquals(['empty' => ''], $input->getArguments(), '->parse() parses empty string arguments');
410410
}
411411

412412
public function testGetFirstArgument()
@@ -415,7 +415,7 @@ public function testGetFirstArgument()
415415
$this->assertNull($input->getFirstArgument(), '->getFirstArgument() returns null when there is no arguments');
416416

417417
$input = new ArgvInput(['cli.php', '-fbbar', 'foo']);
418-
$this->assertSame('foo', $input->getFirstArgument(), '->getFirstArgument() returns the first argument from the raw input');
418+
$this->assertEquals('foo', $input->getFirstArgument(), '->getFirstArgument() returns the first argument from the raw input');
419419

420420
$input = new ArgvInput(['cli.php', '--foo', 'fooval', 'bar']);
421421
$input->bind(new InputDefinition([new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL), new InputArgument('arg')]));
@@ -495,18 +495,18 @@ public function testNoWarningOnInvalidParameterOption()
495495
// No warning thrown
496496
$this->assertFalse($input->hasParameterOption(['-m', '']));
497497

498-
$this->assertSame('dev', $input->getParameterOption(['-e', '']));
498+
$this->assertEquals('dev', $input->getParameterOption(['-e', '']));
499499
// No warning thrown
500500
$this->assertFalse($input->getParameterOption(['-m', '']));
501501
}
502502

503503
public function testToString()
504504
{
505505
$input = new ArgvInput(['cli.php', '-f', 'foo']);
506-
$this->assertSame('-f foo', (string) $input);
506+
$this->assertEquals('-f foo', (string) $input);
507507

508508
$input = new ArgvInput(['cli.php', '-f', '--bar=foo', 'a b c d', "A\nB'C"]);
509-
$this->assertSame('-f --bar=foo '.escapeshellarg('a b c d').' '.escapeshellarg("A\nB'C"), (string) $input);
509+
$this->assertEquals('-f --bar=foo '.escapeshellarg('a b c d').' '.escapeshellarg("A\nB'C"), (string) $input);
510510
}
511511

512512
/**
@@ -515,7 +515,7 @@ public function testToString()
515515
public function testGetParameterOptionEqualSign($argv, $key, $default, $onlyParams, $expected)
516516
{
517517
$input = new ArgvInput($argv);
518-
$this->assertSame($expected, $input->getParameterOption($key, $default, $onlyParams), '->getParameterOption() returns the expected value');
518+
$this->assertEquals($expected, $input->getParameterOption($key, $default, $onlyParams), '->getParameterOption() returns the expected value');
519519
}
520520

521521
public static function provideGetParameterOptionValues()
@@ -539,33 +539,33 @@ public function testParseSingleDashAsArgument()
539539
{
540540
$input = new ArgvInput(['cli.php', '-']);
541541
$input->bind(new InputDefinition([new InputArgument('file')]));
542-
$this->assertSame(['file' => '-'], $input->getArguments(), '->parse() parses single dash as an argument');
542+
$this->assertEquals(['file' => '-'], $input->getArguments(), '->parse() parses single dash as an argument');
543543
}
544544

545545
public function testParseOptionWithValueOptionalGivenEmptyAndRequiredArgument()
546546
{
547547
$input = new ArgvInput(['cli.php', '--foo=', 'bar']);
548548
$input->bind(new InputDefinition([new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL), new InputArgument('name', InputArgument::REQUIRED)]));
549-
$this->assertSame(['foo' => ''], $input->getOptions(), '->parse() parses optional options with empty value as null');
550-
$this->assertSame(['name' => 'bar'], $input->getArguments(), '->parse() parses required arguments');
549+
$this->assertEquals(['foo' => ''], $input->getOptions(), '->parse() parses optional options with empty value as null');
550+
$this->assertEquals(['name' => 'bar'], $input->getArguments(), '->parse() parses required arguments');
551551

552552
$input = new ArgvInput(['cli.php', '--foo=0', 'bar']);
553553
$input->bind(new InputDefinition([new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL), new InputArgument('name', InputArgument::REQUIRED)]));
554-
$this->assertSame(['foo' => '0'], $input->getOptions(), '->parse() parses optional options with empty value as null');
555-
$this->assertSame(['name' => 'bar'], $input->getArguments(), '->parse() parses required arguments');
554+
$this->assertEquals(['foo' => '0'], $input->getOptions(), '->parse() parses optional options with empty value as null');
555+
$this->assertEquals(['name' => 'bar'], $input->getArguments(), '->parse() parses required arguments');
556556
}
557557

558558
public function testParseOptionWithValueOptionalGivenEmptyAndOptionalArgument()
559559
{
560560
$input = new ArgvInput(['cli.php', '--foo=', 'bar']);
561561
$input->bind(new InputDefinition([new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL), new InputArgument('name', InputArgument::OPTIONAL)]));
562-
$this->assertSame(['foo' => ''], $input->getOptions(), '->parse() parses optional options with empty value as null');
563-
$this->assertSame(['name' => 'bar'], $input->getArguments(), '->parse() parses optional arguments');
562+
$this->assertEquals(['foo' => ''], $input->getOptions(), '->parse() parses optional options with empty value as null');
563+
$this->assertEquals(['name' => 'bar'], $input->getArguments(), '->parse() parses optional arguments');
564564

565565
$input = new ArgvInput(['cli.php', '--foo=0', 'bar']);
566566
$input->bind(new InputDefinition([new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL), new InputArgument('name', InputArgument::OPTIONAL)]));
567-
$this->assertSame(['foo' => '0'], $input->getOptions(), '->parse() parses optional options with empty value as null');
568-
$this->assertSame(['name' => 'bar'], $input->getArguments(), '->parse() parses optional arguments');
567+
$this->assertEquals(['foo' => '0'], $input->getOptions(), '->parse() parses optional options with empty value as null');
568+
$this->assertEquals(['name' => 'bar'], $input->getArguments(), '->parse() parses optional arguments');
569569
}
570570

571571
public function testGetRawTokensFalse()
@@ -603,8 +603,7 @@ public function testUnparse(
603603
ArgvInput $input,
604604
?array $parsedOptions,
605605
array $expected,
606-
): void
607-
{
606+
) {
608607
if (null !== $inputDefinition) {
609608
$input->bind($inputDefinition);
610609
}
@@ -712,7 +711,7 @@ public static function unparseProvider(): iterable
712711
$createSingleOptionScenario = static fn (
713712
InputOption $option,
714713
array $input,
715-
array $expected
714+
array $expected,
716715
) => [
717716
new InputDefinition([$option]),
718717
new ArgvInput(['appName', ...$input]),
@@ -812,7 +811,7 @@ public static function unparseProvider(): iterable
812811

813812
$createEscapeOptionTokenScenario = static fn (
814813
string $optionValue,
815-
?string $expected
814+
?string $expected,
816815
) => [
817816
new InputDefinition([
818817
new InputOption(

src/Symfony/Component/Console/Tests/Input/ArrayInputTest.php

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
namespace Symfony\Component\Console\Tests\Input;
1313

1414
use PHPUnit\Framework\TestCase;
15-
use Symfony\Component\Console\Exception\InvalidArgumentException;
1615
use Symfony\Component\Console\Input\ArrayInput;
1716
use Symfony\Component\Console\Input\InputArgument;
1817
use Symfony\Component\Console\Input\InputDefinition;
@@ -180,8 +179,7 @@ public function testUnparse(
180179
ArrayInput $input,
181180
?array $parsedOptions,
182181
array $expected,
183-
): void
184-
{
182+
) {
185183
if (null !== $inputDefinition) {
186184
$input->bind($inputDefinition);
187185
}
@@ -302,7 +300,7 @@ public static function unparseProvider(): iterable
302300
$createSingleOptionScenario = static fn (
303301
InputOption $option,
304302
array $input,
305-
array $expected
303+
array $expected,
306304
) => [
307305
new InputDefinition([$option]),
308306
new ArrayInput($input),
@@ -402,7 +400,7 @@ public static function unparseProvider(): iterable
402400

403401
$createEscapeOptionTokenScenario = static fn (
404402
string $optionValue,
405-
?string $expected
403+
?string $expected,
406404
) => [
407405
new InputDefinition([
408406
new InputOption(

0 commit comments

Comments
 (0)
0