[ Index ]

PHP Cross Reference of phpBB-3.1.12-deutsch

title

Body

[close]

/vendor/symfony/routing/Symfony/Component/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 = array();
  32  
  33      /**
  34       * @var array
  35       */
  36      private $attributes = array();
  37  
  38      /**
  39       * Returns the children routes and collections.
  40       *
  41       * @return (DumperCollection|DumperRoute)[] Array of DumperCollection|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 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 DumperCollection 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 DumperCollection|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       * @param DumperCollection $parent The parent collection
 110       */
 111      protected function setParent(DumperCollection $parent)
 112      {
 113          $this->parent = $parent;
 114      }
 115  
 116      /**
 117       * Returns true if the attribute is defined.
 118       *
 119       * @param string $name The attribute name
 120       *
 121       * @return bool true if the attribute is defined, false otherwise
 122       */
 123      public function hasAttribute($name)
 124      {
 125          return array_key_exists($name, $this->attributes);
 126      }
 127  
 128      /**
 129       * Returns an attribute by name.
 130       *
 131       * @param string $name    The attribute name
 132       * @param mixed  $default Default value is the attribute doesn't exist
 133       *
 134       * @return mixed The attribute value
 135       */
 136      public function getAttribute($name, $default = null)
 137      {
 138          return $this->hasAttribute($name) ? $this->attributes[$name] : $default;
 139      }
 140  
 141      /**
 142       * Sets an attribute by name.
 143       *
 144       * @param string $name  The attribute name
 145       * @param mixed  $value The attribute value
 146       */
 147      public function setAttribute($name, $value)
 148      {
 149          $this->attributes[$name] = $value;
 150      }
 151  
 152      /**
 153       * Sets multiple attributes.
 154       *
 155       * @param array $attributes The attributes
 156       */
 157      public function setAttributes($attributes)
 158      {
 159          $this->attributes = $attributes;
 160      }
 161  }


Generated: Thu Jan 11 00:25:41 2018 Cross-referenced by PHPXref 0.7.1