8000 Fix undefined index for inconsistent command name definition · symfony/symfony@86b0cf8 · GitHub
[go: up one dir, main page]

Skip to content

Commit 86b0cf8

Browse files
committed
Fix undefined index for inconsistent command name definition
1 parent f4f7683 commit 86b0cf8

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

src/Symfony/Component/Console/Application.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -490,6 +490,11 @@ public function get($name)
490490
throw new CommandNotFoundException(sprintf('The command "%s" does not exist.', $name));
491491
}
492492

493+
// When the command has a different name than the one used at the command loader level
494+
if (!isset($this->commands[$name])) {
495+
throw new CommandNotFoundException(sprintf('The "%s" command cannot be found because it is registered under multiple names. Make sure you don\'t set a different name via constructor or "setName()".', $name));
496+
}
497+
493498
$command = $this->commands[$name];
494499

495500
if ($this->wantHelps) {

src/Symfony/Component/Console/Tests/ApplicationTest.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1715,6 +1715,20 @@ public function testErrorIsRethrownIfNotHandledByConsoleErrorEventWithCatchingEn
17151715
$this->assertSame('Something went wrong.', $e->getMessage());
17161716
}
17171717
}
1718+
1719+
public function testCommandNameMismatchWithCommandLoaderKeyThrows()
1720+
{
1721+
$this->expectException(CommandNotFoundException::class);
1722+
$this->expectExceptionMessage('The "test" command cannot be found because it is registered under multiple names. Make sure you don\'t set a different name via constructor or "setName()".');
1723+
1724+
$app = new Application();
1725+
$loader = new FactoryCommandLoader([
1726+
'test' => static function() { return new Command('test-command'); },
1727+
]);
1728+
1729+
$app->setCommandLoader($loader);
1730+
$app->get('test');
1731+
}
17181732
}
17191733

17201734
class CustomApplication extends Application

0 commit comments

Comments
 (0)
0