Verzeichnisstruktur phpBB-3.2.0
- Veröffentlicht
- 06.01.2017
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 |
DefinitionDecorator.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\DependencyInjection;
013
014 use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
015 use Symfony\Component\DependencyInjection\Exception\OutOfBoundsException;
016
017 /**
018 * This definition decorates another definition.
019 *
020 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
021 */
022 class DefinitionDecorator extends Definition
023 {
024 private $parent;
025 private $changes = array();
026
027 /**
028 * @param string $parent The id of Definition instance to decorate
029 */
030 public function __construct($parent)
031 {
032 parent::__construct();
033
034 $this->parent = $parent;
035 }
036
037 /**
038 * Returns the Definition being decorated.
039 *
040 * @return string
041 */
042 public function getParent()
043 {
044 return $this->parent;
045 }
046
047 /**
048 * Returns all changes tracked for the Definition object.
049 *
050 * @return array An array of changes for this Definition
051 */
052 public function getChanges()
053 {
054 return $this->changes;
055 }
056
057 /**
058 * {@inheritdoc}
059 */
060 public function setClass($class)
061 {
062 $this->changes['class'] = true;
063
064 return parent::setClass($class);
065 }
066
067 /**
068 * {@inheritdoc}
069 */
070 public function setFactory($callable)
071 {
072 $this->changes['factory'] = true;
073
074 return parent::setFactory($callable);
075 }
076
077 /**
078 * {@inheritdoc}
079 */
080 public function setFactoryClass($class)
081 {
082 $this->changes['factory_class'] = true;
083
084 return parent::setFactoryClass($class);
085 }
086
087 /**
088 * {@inheritdoc}
089 */
090 public function setFactoryMethod($method)
091 {
092 $this->changes['factory_method'] = true;
093
094 return parent::setFactoryMethod($method);
095 }
096
097 /**
098 * {@inheritdoc}
099 */
100 public function setFactoryService($service, $triggerDeprecationError = true)
101 {
102 $this->changes['factory_service'] = true;
103
104 return parent::setFactoryService($service, $triggerDeprecationError);
105 }
106
107 /**
108 * {@inheritdoc}
109 */
110 public function setConfigurator($callable)
111 {
112 $this->changes['configurator'] = true;
113
114 return parent::setConfigurator($callable);
115 }
116
117 /**
118 * {@inheritdoc}
119 */
120 public function setFile($file)
121 {
122 $this->changes['file'] = true;
123
124 return parent::setFile($file);
125 }
126
127 /**
128 * {@inheritdoc}
129 */
130 public function setPublic($boolean)
131 {
132 $this->changes['public'] = true;
133
134 return parent::setPublic($boolean);
135 }
136
137 /**
138 * {@inheritdoc}
139 */
140 public function setLazy($boolean)
141 {
142 $this->changes['lazy'] = true;
143
144 return parent::setLazy($boolean);
145 }
146
147 /**
148 * {@inheritdoc}
149 */
150 public function setDecoratedService($id, $renamedId = null, $priority = 0)
151 {
152 $this->changes['decorated_service'] = true;
153
154 return parent::setDecoratedService($id, $renamedId, $priority);
155 }
156
157 /**
158 * {@inheritdoc}
159 */
160 public function setDeprecated($boolean = true, $template = null)
161 {
162 $this->changes['deprecated'] = true;
163
164 return parent::setDeprecated($boolean, $template);
165 }
166
167 /**
168 * {@inheritdoc}
169 */
170 public function setAutowired($autowired)
171 {
172 $this->changes['autowire'] = true;
173
174 return parent::setAutowired($autowired);
175 }
176
177 /**
178 * Gets an argument to pass to the service constructor/factory method.
179 *
180 * If replaceArgument() has been used to replace an argument, this method
181 * will return the replacement value.
182 *
183 * @param int $index
184 *
185 * @return mixed The argument value
186 *
187 * @throws OutOfBoundsException When the argument does not exist
188 */
189 public function getArgument($index)
190 {
191 if (array_key_exists('index_'.$index, $this->arguments)) {
192 return $this->arguments['index_'.$index];
193 }
194
195 $lastIndex = count(array_filter(array_keys($this->arguments), 'is_int')) - 1;
196
197 if ($index < 0 || $index > $lastIndex) {
198 throw new OutOfBoundsException(sprintf('The index "%d" is not in the range [0, %d].', $index, $lastIndex));
199 }
200
201 return $this->arguments[$index];
202 }
203
204 /**
205 * You should always use this method when overwriting existing arguments
206 * of the parent definition.
207 *
208 * If you directly call setArguments() keep in mind that you must follow
209 * certain conventions when you want to overwrite the arguments of the
210 * parent definition, otherwise your arguments will only be appended.
211 *
212 * @param int $index
213 * @param mixed $value
214 *
215 * @return DefinitionDecorator the current instance
216 *
217 * @throws InvalidArgumentException when $index isn't an integer
218 */
219 public function replaceArgument($index, $value)
220 {
221 if (!is_int($index)) {
222 throw new InvalidArgumentException('$index must be an integer.');
223 }
224
225 $this->arguments['index_'.$index] = $value;
226
227 return $this;
228 }
229 }
230