/** * @covers Symfony\Component\DependencyInjection\Container::isFrozen */ public function testIsFrozen() { $sc = new Container(new ParameterBag(array('foo' => 'bar'))); $this->assertFalse($sc->isFrozen(), '->isFrozen() returns false if the parameters are not frozen'); $sc->freeze(); $this->assertTrue($sc->isFrozen(), '->isFrozen() returns true if the parameters are frozen'); }
/** * Freezes the container. * * This method does four things: * * * The extension configurations are merged; * * Parameter values are resolved; * * The parameter bag is freezed; * * Extension loading is disabled. */ public function freeze() { $parameters = $this->parameterBag->all(); $definitions = $this->definitions; $aliases = $this->aliases; foreach ($this->extensionContainers as $container) { $this->merge($container); } $this->extensionContainers = array(); $this->addDefinitions($definitions); $this->addAliases($aliases); $this->parameterBag->add($parameters); parent::freeze(); }
/** * Freezes the container. * * This method does four things: * * * The extension configurations are merged; * * Parameter values are resolved; * * The parameter bag is freezed; * * Extension loading is disabled. */ public function freeze() { foreach ($this->compilerPasses as $pass) { $pass->process($this); } parent::freeze(); }
/** * Freezes the container. * * This method does four things: * * * The extension configurations are merged; * * Parameter values are resolved; * * The parameter bag is freezed; * * Extension loading is disabled. */ public function freeze() { $parameters = $this->parameterBag->all(); $definitions = $this->definitions; $aliases = $this->aliases; foreach ($this->extensionConfigs as $name => $configs) { list($namespace, $tag) = explode(':', $name); $extension = $this->getExtension($namespace); $container = new self($this->parameterBag); $container->addObjectResource($extension); foreach ($configs as $config) { $extension->load($tag, $config, $container); } $this->merge($container); } $this->extensionConfigs = array(); $this->addDefinitions($definitions); $this->addAliases($aliases); $this->parameterBag->add($parameters); parent::freeze(); }
/** * Freezes the container. * * This method does four things: * * * The extension configurations are merged; * * Parameter values are resolved; * * The parameter bag is freezed; * * Extension loading is disabled. */ public function freeze() { $parameters = $this->parameterBag->all(); $definitions = $this->definitions; $aliases = $this->aliases; foreach ($this->extensionConfigs as $name => $configs) { list($namespace, $tag) = explode(':', $name); $extension = $this->getExtension($namespace); $container = new self($this->parameterBag); $container->addObjectResource($extension); foreach ($configs as $config) { $extension->load($tag, $config, $container); } $this->merge($container); } $this->extensionConfigs = array(); $this->addDefinitions($definitions); $this->addAliases($aliases); $this->parameterBag->add($parameters); foreach ($this->definitions as $definition) { foreach ($this->injectors as $injector) { if (null !== $definition->getFactoryService()) { continue; } $defClass = $this->parameterBag->resolveValue($definition->getClass()); $definition->setClass($defClass); if ($injector->supports($defClass)) { $injector->processDefinition($definition); } } } parent::freeze(); }