Chris@14: Chris@14: * Chris@14: * For the full copyright and license information, please view the LICENSE Chris@14: * file that was distributed with this source code. Chris@14: */ Chris@14: Chris@14: namespace Symfony\Component\DependencyInjection\Loader\Configurator; Chris@14: Chris@14: use Symfony\Component\DependencyInjection\ChildDefinition; Chris@14: use Symfony\Component\DependencyInjection\ContainerBuilder; Chris@14: use Symfony\Component\DependencyInjection\Definition; Chris@14: Chris@14: /** Chris@14: * @author Nicolas Grekas Chris@14: */ Chris@14: class ServiceConfigurator extends AbstractServiceConfigurator Chris@14: { Chris@14: const FACTORY = 'services'; Chris@14: Chris@14: use Traits\AbstractTrait; Chris@14: use Traits\ArgumentTrait; Chris@14: use Traits\AutoconfigureTrait; Chris@14: use Traits\AutowireTrait; Chris@14: use Traits\BindTrait; Chris@14: use Traits\CallTrait; Chris@14: use Traits\ClassTrait; Chris@14: use Traits\ConfiguratorTrait; Chris@14: use Traits\DecorateTrait; Chris@14: use Traits\DeprecateTrait; Chris@14: use Traits\FactoryTrait; Chris@14: use Traits\FileTrait; Chris@14: use Traits\LazyTrait; Chris@14: use Traits\ParentTrait; Chris@14: use Traits\PropertyTrait; Chris@14: use Traits\PublicTrait; Chris@14: use Traits\ShareTrait; Chris@14: use Traits\SyntheticTrait; Chris@14: use Traits\TagTrait; Chris@14: Chris@14: private $container; Chris@14: private $instanceof; Chris@14: private $allowParent; Chris@14: Chris@14: public function __construct(ContainerBuilder $container, array $instanceof, $allowParent, ServicesConfigurator $parent, Definition $definition, $id, array $defaultTags) Chris@14: { Chris@14: $this->container = $container; Chris@14: $this->instanceof = $instanceof; Chris@14: $this->allowParent = $allowParent; Chris@14: Chris@14: parent::__construct($parent, $definition, $id, $defaultTags); Chris@14: } Chris@14: Chris@14: public function __destruct() Chris@14: { Chris@14: parent::__destruct(); Chris@14: Chris@18: $this->container->removeBindings($this->id); Chris@18: Chris@14: if (!$this->definition instanceof ChildDefinition) { Chris@14: $this->container->setDefinition($this->id, $this->definition->setInstanceofConditionals($this->instanceof)); Chris@14: } else { Chris@14: $this->container->setDefinition($this->id, $this->definition); Chris@14: } Chris@14: } Chris@14: }