[ Index ]

PHP Cross Reference of phpBB-3.3.11-deutsch

title

Body

[close]

/vendor/symfony/routing/Matcher/Dumper/ -> DumperCollection.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\Routing\Matcher\Dumper;
  13  
  14  /**
  15   * Collection of routes.
  16   *
  17   * @author Arnaud Le Blanc <arnaud.lb@gmail.com>
  18   *
  19   * @internal
  20   */
  21  class DumperCollection implements \IteratorAggregate
  22  {
  23      /**
  24       * @var DumperCollection|null
  25       */
  26      private $parent;
  27  
  28      /**
  29       * @var DumperCollection[]|DumperRoute[]
  30       */
  31      private $children = [];
  32  
  33      /**
  34       * @var array
  35       */
  36      private $attributes = [];
  37  
  38      /**
  39       * Returns the children routes and collections.
  40       *
  41       * @return self[]|DumperRoute[]
  42       */
  43      public function all()
  44      {
  45          return $this->children;
  46      }
  47  
  48      /**
  49       * Adds a route or collection.
  50       *
  51       * @param DumperRoute|DumperCollection The route or collection
  52       */
  53      public function add($child)
  54      {
  55          if ($child instanceof self) {
  56              $child->setParent($this);
  57          }
  58          $this->children[] = $child;
  59      }
  60  
  61      /**
  62       * Sets children.
  63       *
  64       * @param array $children The children
  65       */
  66      public function setAll(array $children)
  67      {
  68          foreach ($children as $child) {
  69              if ($child instanceof self) {
  70                  $child->setParent($this);
  71              }
  72          }
  73          $this->children = $children;
  74      }
  75  
  76      /**
  77       * Returns an iterator over the children.
  78       *
  79       * @return \Iterator|DumperCollection[]|DumperRoute[] The iterator
  80       */
  81      public function getIterator()
  82      {
  83          return new \ArrayIterator($this->children);
  84      }
  85  
  86      /**
  87       * Returns the root of the collection.
  88       *
  89       * @return self The root collection
  90       */
  91      public function getRoot()
  92      {
  93          return (null !== $this->parent) ? $this->parent->getRoot() : $this;
  94      }
  95  
  96      /**
  97       * Returns the parent collection.
  98       *
  99       * @return self|null The parent collection or null if the collection has no parent
 100       */
 101      protected function getParent()
 102      {
 103          return $this->parent;
 104      }
 105  
 106      /**
 107       * Sets the parent collection.
 108       */
 109      protected function setParent(self $parent)
 110      {
 111          $this->parent = $parent;
 112      }
 113  
 114      /**
 115       * Returns true if the attribute is defined.
 116       *
 117       * @param string $name The attribute name
 118       *
 119       * @return bool true if the attribute is defined, false otherwise
 120       */
 121      public function hasAttribute($name)
 122      {
 123          return \array_key_exists($name, $this->attributes);
 124      }
 125  
 126      /**
 127       * Returns an attribute by name.
 128       *
 129       * @param string $name    The attribute name
 130       * @param mixed  $default Default value is the attribute doesn't exist
 131       *
 132       * @return mixed The attribute value
 133       */
 134      public function getAttribute($name, $default = null)
 135      {
 136          return $this->hasAttribute($name) ? $this->attributes[$name] : $default;
 137      }
 138  
 139      /**
 140       * Sets an attribute by name.
 141       *
 142       * @param string $name  The attribute name
 143       * @param mixed  $value The attribute value
 144       */
 145      public function setAttribute($name, $value)
 146      {
 147          $this->attributes[$name] = $value;
 148      }
 149  
 150      /**
 151       * Sets multiple attributes.
 152       *
 153       * @param array $attributes The attributes
 154       */
 155      public function setAttributes($attributes)
 156      {
 157          $this->attributes = $attributes;
 158      }
 159  }


Generated: Sat Nov 4 14:26:03 2023 Cross-referenced by PHPXref 0.7.1