[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)
|
public function setService($id, $service)
|
||||||
{
|
{
|
||||||
|
unset($this->definitions[$id]);
|
||||||
unset($this->aliases[$id]);
|
unset($this->aliases[$id]);
|
||||||
|
|
||||||
parent::setService($id, $service);
|
parent::setService($id, $service);
|
||||||
@ -136,8 +137,8 @@ class Builder extends Container
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->aliases = array_merge($this->aliases, $configuration->getAliases());
|
$this->addDefinitions($configuration->getDefinitions());
|
||||||
$this->definitions = array_merge($this->definitions, $configuration->getDefinitions());
|
$this->addAliases($configuration->getAliases());
|
||||||
|
|
||||||
$currentParameters = $this->getParameters();
|
$currentParameters = $this->getParameters();
|
||||||
foreach ($configuration->getParameters() as $key => $value)
|
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()));
|
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.
|
* Sets an alias for an existing service.
|
||||||
*
|
*
|
||||||
@ -170,6 +195,8 @@ class Builder extends Container
|
|||||||
*/
|
*/
|
||||||
public function setAlias($alias, $id)
|
public function setAlias($alias, $id)
|
||||||
{
|
{
|
||||||
|
unset($this->definitions[$alias]);
|
||||||
|
|
||||||
$this->aliases[$alias] = $id;
|
$this->aliases[$alias] = $id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,6 +157,8 @@ class BuilderConfiguration
|
|||||||
*/
|
*/
|
||||||
public function setAlias($alias, $id)
|
public function setAlias($alias, $id)
|
||||||
{
|
{
|
||||||
|
unset($this->definitions[$alias]);
|
||||||
|
|
||||||
$this->aliases[$alias] = $id;
|
$this->aliases[$alias] = $id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user