/** * Based heavily on \Symfony\Component\DependencyInjection\Compiler\MergeExtensionConfigurationPass. * * @param tubepress_api_ioc_ContainerBuilderInterface $self * * @api */ public function process(tubepress_api_ioc_ContainerBuilderInterface $self) { $parameters = $this->_delegateContainerBuilder->getParameterBag()->all(); /** * These will all be tubepress_internal_ioc_Definition instances */ $definitions = $self->getDefinitions(); /** * @var $extension tubepress_spi_ioc_ContainerExtensionInterface */ foreach ($this->_tubePressContainerExtensions as $extension) { $tmpContainer = new tubepress_internal_ioc_ContainerBuilder($this->_delegateContainerBuilder->getParameterBag()); $extension->load($tmpContainer); $this->merge($tmpContainer); } $self->addDefinitions($definitions); $this->_delegateContainerBuilder->getParameterBag()->add($parameters); }