Verzeichnisstruktur phpBB-3.3.15
- Veröffentlicht
- 28.08.2024
So funktioniert es
|
Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück |
Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
DumperCollection.php
001 <?php
002
003 /*
004 * This file is part of the Symfony package.
005 *
006 * (c) Fabien Potencier <fabien@symfony.com>
007 *
008 * For the full copyright and license information, please view the LICENSE
009 * file that was distributed with this source code.
010 */
011
012 namespace Symfony\Component\Routing\Matcher\Dumper;
013
014 /**
015 * Collection of routes.
016 *
017 * @author Arnaud Le Blanc <arnaud.lb@gmail.com>
018 *
019 * @internal
020 */
021 class DumperCollection implements \IteratorAggregate
022 {
023 /**
024 * @var DumperCollection|null
025 */
026 private $parent;
027
028 /**
029 * @var DumperCollection[]|DumperRoute[]
030 */
031 private $children = [];
032
033 /**
034 * @var array
035 */
036 private $attributes = [];
037
038 /**
039 * Returns the children routes and collections.
040 *
041 * @return self[]|DumperRoute[]
042 */
043 public function all()
044 {
045 return $this->children;
046 }
047
048 /**
049 * Adds a route or collection.
050 *
051 * @param DumperRoute|DumperCollection The route or collection
052 */
053 public function add($child)
054 {
055 if ($child instanceof self) {
056 $child->setParent($this);
057 }
058 $this->children[] = $child;
059 }
060
061 /**
062 * Sets children.
063 *
064 * @param array $children The children
065 */
066 public function setAll(array $children)
067 {
068 foreach ($children as $child) {
069 if ($child instanceof self) {
070 $child->setParent($this);
071 }
072 }
073 $this->children = $children;
074 }
075
076 /**
077 * Returns an iterator over the children.
078 *
079 * @return \Iterator|DumperCollection[]|DumperRoute[] The iterator
080 */
081 public function getIterator()
082 {
083 return new \ArrayIterator($this->children);
084 }
085
086 /**
087 * Returns the root of the collection.
088 *
089 * @return self The root collection
090 */
091 public function getRoot()
092 {
093 return (null !== $this->parent) ? $this->parent->getRoot() : $this;
094 }
095
096 /**
097 * Returns the parent collection.
098 *
099 * @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 }
160