Skip to content

Commit

Permalink
bug #17867 [DependencyInjection] replace alias in factory services (x…
Browse files Browse the repository at this point in the history
…abbuh)

This PR was merged into the 2.3 branch.

Discussion
----------

[DependencyInjection] replace alias in factory services

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #17864
| License       | MIT
| Doc PR        |

Commits
-------

56f8798 replace alias in factory services
  • Loading branch information
fabpot committed Feb 23, 2016
2 parents 0807ff7 + 56f8798 commit 4b33fd3
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
Expand Up @@ -95,6 +95,8 @@ private function updateReferences($container, $currentId, $newId)
$definition->setProperties(
$this->updateArgumentReferences($definition->getProperties(), $currentId, $newId)
);

$definition->setFactoryService($this->updateFactoryServiceReference($definition->getFactoryService(), $currentId, $newId));
}
}

Expand Down Expand Up @@ -122,4 +124,13 @@ private function updateArgumentReferences(array $arguments, $currentId, $newId)

return $arguments;
}

private function updateFactoryServiceReference($factoryService, $currentId, $newId)
{
if (null === $factoryService) {
return;
}

return $currentId === $factoryService ? $newId : $currentId;
}
}
Expand Up @@ -21,7 +21,9 @@ public function testProcess()
{
$container = new ContainerBuilder();

$container->register('a', '\stdClass');
$aDefinition = $container->register('a', '\stdClass');
$aDefinition->setFactoryService('b');
$aDefinition->setFactoryMethod('createA');

$bDefinition = new Definition('\stdClass');
$bDefinition->setPublic(false);
Expand All @@ -39,6 +41,7 @@ public function testProcess()
$container->has('b_alias') && !$container->hasAlias('b_alias'),
'->process() replaces alias to actual.'
);
$this->assertSame('b_alias', $aDefinition->getFactoryService());
}

/**
Expand Down

0 comments on commit 4b33fd3

Please sign in to comment.