[ Index ]

PHP Cross Reference of phpBB-3.3.14-deutsch

title

Body

[close]

/vendor/symfony/dependency-injection/Loader/Configurator/ -> AbstractServiceConfigurator.php (source)

   1  <?php
   2  
   3  /*
   4   * This file is part of the Symfony package.
   5   *
   6   * (c) Fabien Potencier <fabien@symfony.com>
   7   *
   8   * For the full copyright and license information, please view the LICENSE
   9   * file that was distributed with this source code.
  10   */
  11  
  12  namespace Symfony\Component\DependencyInjection\Loader\Configurator;
  13  
  14  use Symfony\Component\DependencyInjection\Definition;
  15  use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
  16  
  17  abstract class AbstractServiceConfigurator extends AbstractConfigurator
  18  {
  19      protected $parent;
  20      protected $id;
  21      private $defaultTags = [];
  22  
  23      public function __construct(ServicesConfigurator $parent, Definition $definition, $id = null, array $defaultTags = [])
  24      {
  25          $this->parent = $parent;
  26          $this->definition = $definition;
  27          $this->id = $id;
  28          $this->defaultTags = $defaultTags;
  29      }
  30  
  31      public function __destruct()
  32      {
  33          // default tags should be added last
  34          foreach ($this->defaultTags as $name => $attributes) {
  35              foreach ($attributes as $attributes) {
  36                  $this->definition->addTag($name, $attributes);
  37              }
  38          }
  39          $this->defaultTags = [];
  40      }
  41  
  42      /**
  43       * Registers a service.
  44       *
  45       * @param string      $id
  46       * @param string|null $class
  47       *
  48       * @return ServiceConfigurator
  49       */
  50      final public function set($id, $class = null)
  51      {
  52          $this->__destruct();
  53  
  54          return $this->parent->set($id, $class);
  55      }
  56  
  57      /**
  58       * Creates an alias.
  59       *
  60       * @param string $id
  61       * @param string $referencedId
  62       *
  63       * @return AliasConfigurator
  64       */
  65      final public function alias($id, $referencedId)
  66      {
  67          $this->__destruct();
  68  
  69          return $this->parent->alias($id, $referencedId);
  70      }
  71  
  72      /**
  73       * Registers a PSR-4 namespace using a glob pattern.
  74       *
  75       * @param string $namespace
  76       * @param string $resource
  77       *
  78       * @return PrototypeConfigurator
  79       */
  80      final public function load($namespace, $resource)
  81      {
  82          $this->__destruct();
  83  
  84          return $this->parent->load($namespace, $resource);
  85      }
  86  
  87      /**
  88       * Gets an already defined service definition.
  89       *
  90       * @param string $id
  91       *
  92       * @return ServiceConfigurator
  93       *
  94       * @throws ServiceNotFoundException if the service definition does not exist
  95       */
  96      final public function get($id)
  97      {
  98          $this->__destruct();
  99  
 100          return $this->parent->get($id);
 101      }
 102  
 103      /**
 104       * Registers a service.
 105       *
 106       * @param string      $id
 107       * @param string|null $class
 108       *
 109       * @return ServiceConfigurator
 110       */
 111      final public function __invoke($id, $class = null)
 112      {
 113          $this->__destruct();
 114  
 115          return $this->parent->set($id, $class);
 116      }
 117  }


Generated: Mon Nov 25 19:05:08 2024 Cross-referenced by PHPXref 0.7.1