[DependencyInjection] fixed Builder when trying to override an alias with a definition or the other way around
This commit is contained in:
parent
dd5c73b5db
commit
38c4b29555
@ -32,6 +32,7 @@ class Builder extends Container
|
||||
*/
|
||||
public function setService($id, $service)
|
||||
{
|
||||
unset($this->definitions[$id]);
|
||||
unset($this->aliases[$id]);
|
||||
|
||||
parent::setService($id, $service);
|
||||
@ -136,8 +137,8 @@ class Builder extends Container
|
||||
return;
|
||||
}
|
||||
|
||||
$this->aliases = array_merge($this->aliases, $configuration->getAliases());
|
||||
$this->definitions = array_merge($this->definitions, $configuration->getDefinitions());
|
||||
$this->addDefinitions($configuration->getDefinitions());
|
||||
$this->addAliases($configuration->getAliases());
|
||||
|
||||
$currentParameters = $this->getParameters();
|
||||
foreach ($configuration->getParameters() as $key => $value)
|
||||
@ -162,6 +163,30 @@ class Builder extends Container
|
||||
return array_unique(array_merge(array_keys($this->getDefinitions()), array_keys($this->aliases), parent::getServiceIds()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the service aliases.
|
||||
*
|
||||
* @param array $aliases An array of aliases
|
||||
*/
|
||||
public function addAliases(array $aliases)
|
||||
{
|
||||
foreach ($aliases as $alias => $id)
|
||||
{
|
||||
$this->setAlias($alias, $id);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the service aliases.
|
||||
*
|
||||
* @param array $definitions An array of service definitions
|
||||
*/
|
||||
public function setAliases(array $aliases)
|
||||
{
|
||||
$this->aliases = array();
|
||||
$this->addAliases($aliases);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets an alias for an existing service.
|
||||
*
|
||||
@ -170,6 +195,8 @@ class Builder extends Container
|
||||
*/
|
||||
public function setAlias($alias, $id)
|
||||
{
|
||||
unset($this->definitions[$alias]);
|
||||
|
||||
$this->aliases[$alias] = $id;
|
||||
}
|
||||
|
||||
|
@ -157,6 +157,8 @@ class BuilderConfiguration
|
||||
*/
|
||||
public function setAlias($alias, $id)
|
||||
{
|
||||
unset($this->definitions[$alias]);
|
||||
|
||||
$this->aliases[$alias] = $id;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user