Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork9.7k
[Console][DX] Fixed ambiguous error message when using a duplicate option shortcut#18864
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
stof commentedMay 25, 2016
Please add a test covering this to prevent regressions |
stof commentedMay 25, 2016
btw, it may even go into 2.3 (if it is merged in the next few days) |
peterrehm commentedMay 25, 2016
@stof Test just has been added. |
| $input =newArrayInput(array('command' =>'foo')); | ||
| $output =newNullOutput(); | ||
| $application->run($input,$output); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Please remove the trailing spaces here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Updated.
xabbuh commentedMay 25, 2016
👍 apart from my minor comment Status: Reviewed |
fabpot commentedMay 26, 2016
Thank you@peterrehm. |
…uplicate option shortcut (peterrehm)This PR was submitted for the master branch but it was merged into the 2.3 branch instead (closes#18864).Discussion----------[Console][DX] Fixed ambiguous error message when using a duplicate option shortcut| Q | A| ------------- | ---| Branch? | 2.3| Bug fix? | yes| New feature? | no| BC breaks? | no| Deprecations? | no| Tests pass? | yes| Fixed tickets |#18856| License | MIT| Doc PR | -I assume this should be merged into 2.3 as per@stof's comment.There is a race condition when you run a command which has a duplicate option shortcut. Simply changing the order so that Options are merged before the Arguments solves that race condition.````php$this->setName('my:super:command')->setAliases(['my:super:commandalias'])->setDescription('Performs some irrelevant work.')->addOption('survey', 'e', InputOption::VALUE_REQUIRED, 'My option with a shortcut.')````Gives the error message:``` [Symfony\Component\Console\Exception\LogicException] An argument with name "command" already exists.```This happens as the first time the definition is merged happens here:https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Console/Application.php#L820As this throws an error here:https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Console/Command/Command.php#L309The commans are merged but not the options.Merging it then again when the command is runhttps://github.com/symfony/symfony/blob/master/src/Symfony/Component/Console/Command/Command.php#L217throws an error due to the duplicate argument as the arguments already have been merged. This time the error message is not surpressed and will confuse the user.Changing the order should fix the issue for duplicate arguments as well as for duplicate options.Commits-------7cb7655 [Console][DX] Fixed ambiguous error message when using a duplicate option shortcut
Uh oh!
There was an error while loading.Please reload this page.
I assume this should be merged into 2.3 as per@stof's comment.
There is a race condition when you run a command which has a duplicate option shortcut. Simply changing the order so that Options are merged before the Arguments solves that race condition.
Gives the error message:
This happens as the first time the definition is merged happens here:
https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Console/Application.php#L820
As this throws an error here:
https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Console/Command/Command.php#L309
The commans are merged but not the options.
Merging it then again when the command is run
https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Console/Command/Command.php#L217
throws an error due to the duplicate argument as the arguments already have been merged. This time the error message is not surpressed and will confuse the user.
Changing the order should fix the issue for duplicate arguments as well as for duplicate options.