ServiceConfigurator.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. /*
  3. * This file is part of the Symfony package.
  4. *
  5. * (c) Fabien Potencier <fabien@symfony.com>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace Symfony\Component\DependencyInjection\Loader\Configurator;
  11. use Symfony\Component\DependencyInjection\ChildDefinition;
  12. use Symfony\Component\DependencyInjection\ContainerBuilder;
  13. use Symfony\Component\DependencyInjection\Definition;
  14. /**
  15. * @autor ThurData <info@thurdata.ch>
  16. */
  17. class ServiceConfigurator extends AbstractServiceConfigurator
  18. {
  19. const FACTORY = 'services';
  20. use Traits\AbstractTrait;
  21. use Traits\ArgumentTrait;
  22. use Traits\AutoconfigureTrait;
  23. use Traits\AutowireTrait;
  24. use Traits\BindTrait;
  25. use Traits\CallTrait;
  26. use Traits\ClassTrait;
  27. use Traits\ConfiguratorTrait;
  28. use Traits\DecorateTrait;
  29. use Traits\DeprecateTrait;
  30. use Traits\FactoryTrait;
  31. use Traits\FileTrait;
  32. use Traits\LazyTrait;
  33. use Traits\ParentTrait;
  34. use Traits\PropertyTrait;
  35. use Traits\PublicTrait;
  36. use Traits\ShareTrait;
  37. use Traits\SyntheticTrait;
  38. use Traits\TagTrait;
  39. private $container;
  40. private $instanceof;
  41. private $allowParent;
  42. public function __construct(ContainerBuilder $container, array $instanceof, $allowParent, ServicesConfigurator $parent, Definition $definition, $id, array $defaultTags)
  43. {
  44. $this->container = $container;
  45. $this->instanceof = $instanceof;
  46. $this->allowParent = $allowParent;
  47. parent::__construct($parent, $definition, $id, $defaultTags);
  48. }
  49. public function __destruct()
  50. {
  51. parent::__destruct();
  52. if (!$this->definition instanceof ChildDefinition) {
  53. $this->container->setDefinition($this->id, $this->definition->setInstanceofConditionals($this->instanceof));
  54. } else {
  55. $this->container->setDefinition($this->id, $this->definition);
  56. }
  57. }
  58. }