Verzeichnisstruktur phpBB-3.1.0
- Veröffentlicht
- 27.10.2014
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 class DumperCollection implements \IteratorAggregate
020 {
021 /**
022 * @var DumperCollection|null
023 */
024 private $parent;
025
026 /**
027 * @var (DumperCollection|DumperRoute)[]
028 */
029 private $children = array();
030
031 /**
032 * @var array
033 */
034 private $attributes = array();
035
036 /**
037 * Returns the children routes and collections.
038 *
039 * @return (DumperCollection|DumperRoute)[] Array of DumperCollection|DumperRoute
040 */
041 public function all()
042 {
043 return $this->children;
044 }
045
046 /**
047 * Adds a route or collection
048 *
049 * @param DumperRoute|DumperCollection The route or collection
050 */
051 public function add($child)
052 {
053 if ($child instanceof DumperCollection) {
054 $child->setParent($this);
055 }
056 $this->children[] = $child;
057 }
058
059 /**
060 * Sets children.
061 *
062 * @param array $children The children
063 */
064 public function setAll(array $children)
065 {
066 foreach ($children as $child) {
067 if ($child instanceof DumperCollection) {
068 $child->setParent($this);
069 }
070 }
071 $this->children = $children;
072 }
073
074 /**
075 * Returns an iterator over the children.
076 *
077 * @return \Iterator The iterator
078 */
079 public function getIterator()
080 {
081 return new \ArrayIterator($this->children);
082 }
083
084 /**
085 * Returns the root of the collection.
086 *
087 * @return DumperCollection The root collection
088 */
089 public function getRoot()
090 {
091 return (null !== $this->parent) ? $this->parent->getRoot() : $this;
092 }
093
094 /**
095 * Returns the parent collection.
096 *
097 * @return DumperCollection|null The parent collection or null if the collection has no parent
098 */
099 protected function getParent()
100 {
101 return $this->parent;
102 }
103
104 /**
105 * Sets the parent collection.
106 *
107 * @param DumperCollection $parent The parent collection
108 */
109 protected function setParent(DumperCollection $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