public function ContainerBuilder::set in Zircon Profile 8
Same name in this branch
- 8 vendor/symfony/dependency-injection/ContainerBuilder.php \Symfony\Component\DependencyInjection\ContainerBuilder::set()
- 8 core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php \Drupal\Core\DependencyInjection\ContainerBuilder::set()
Same name and namespace in other branches
- 8.0 vendor/symfony/dependency-injection/ContainerBuilder.php \Symfony\Component\DependencyInjection\ContainerBuilder::set()
Sets a service.
Parameters
string $id The service identifier:
object $service The service instance:
string $scope The scope:
Throws
BadMethodCallException When this ContainerBuilder is frozen
Overrides ContainerInterface::set
1 method overrides ContainerBuilder::set()
- ContainerBuilder::set in core/
lib/ Drupal/ Core/ DependencyInjection/ ContainerBuilder.php - Overrides Symfony\Component\DependencyInjection\ContainerBuilder::set().
File
- vendor/
symfony/ dependency-injection/ ContainerBuilder.php, line 358
Class
- ContainerBuilder
- ContainerBuilder is a DI container that provides an API to easily describe services.
Namespace
Symfony\Component\DependencyInjectionCode
public function set($id, $service, $scope = self::SCOPE_CONTAINER) {
$id = strtolower($id);
if ($this
->isFrozen()) {
// setting a synthetic service on a frozen container is alright
if (!isset($this->definitions[$id]) && !isset($this->obsoleteDefinitions[$id]) || isset($this->definitions[$id]) && !$this->definitions[$id]
->isSynthetic() || isset($this->obsoleteDefinitions[$id]) && !$this->obsoleteDefinitions[$id]
->isSynthetic()) {
throw new BadMethodCallException(sprintf('Setting service "%s" on a frozen container is not allowed.', $id));
}
}
if (isset($this->definitions[$id])) {
$this->obsoleteDefinitions[$id] = $this->definitions[$id];
}
unset($this->definitions[$id], $this->aliasDefinitions[$id]);
parent::set($id, $service, $scope);
if (isset($this->obsoleteDefinitions[$id]) && $this->obsoleteDefinitions[$id]
->isSynchronized(false)) {
$this
->synchronize($id);
}
}