Skip to content

Commit

Permalink
Merge pull request #4 from podhy/master
Browse files Browse the repository at this point in the history
Skip overwriting existing service definition
  • Loading branch information
Tomáš Votruba committed Mar 18, 2016
2 parents 83c9000 + e32ac8c commit 6227145
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 1 deletion.
8 changes: 7 additions & 1 deletion src/DependencyInjection/Compiler/RegisterControllersPass.php
Expand Up @@ -58,7 +58,13 @@ private function registerControllersToContainerBuilder(array $controllers, Conta
{
foreach ($controllers as $controller) {
$id = $this->buildControllerIdFromClass($controller);
$definition = $this->buildControllerDefinitionFromClass($controller);

if (!$containerBuilder->hasDefinition($id)) {
$definition = $this->buildControllerDefinitionFromClass($controller);
} else {
$definition = $containerBuilder->getDefinition($id);
$definition->setAutowired(true);
}

$containerBuilder->setDefinition($id, $definition);
$this->controllerClassMap->addController($id, $controller);
Expand Down
23 changes: 23 additions & 0 deletions tests/DependencyInjection/Compiler/RegisterControllersPassTest.php
Expand Up @@ -49,4 +49,27 @@ public function testProcess()
$this->assertSame(SomeController::class, $controllerDefinition->getClass());
$this->assertTrue($controllerDefinition->isAutowired());
}

public function testServiceDefinitionExists()
{
$containerBuilder = new ContainerBuilder();
$containerBuilder->prependExtensionConfig(SymplifyControllerAutowireBundle::ALIAS, [
'controller_dirs' => [
__DIR__.'/RegisterControllersPassSource',
],
]);

$controllerDefition = new Definition(SomeController::class);
$containerBuilder->setDefinition(
'symplify.controllerautowire.tests.dependencyinjection.'
.'compiler.registercontrollerspasssource.somecontroller',
$controllerDefition
);
$this->assertCount(1, $containerBuilder->getDefinitions());

$this->registerControllersPass->process($containerBuilder);
$this->assertCount(1, $containerBuilder->getDefinitions());

$this->assertTrue($controllerDefition->isAutowired());
}
}

0 comments on commit 6227145

Please sign in to comment.