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 |
PassConfig.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\Compiler;
013
014 use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
015
016 /**
017 * Compiler Pass Configuration
018 *
019 * This class has a default configuration embedded.
020 *
021 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
022 *
023 * @api
024 */
025 class PassConfig
026 {
027 const TYPE_AFTER_REMOVING = 'afterRemoving';
028 const TYPE_BEFORE_OPTIMIZATION = 'beforeOptimization';
029 const TYPE_BEFORE_REMOVING = 'beforeRemoving';
030 const TYPE_OPTIMIZE = 'optimization';
031 const TYPE_REMOVE = 'removing';
032
033 private $mergePass;
034 private $afterRemovingPasses;
035 private $beforeOptimizationPasses;
036 private $beforeRemovingPasses;
037 private $optimizationPasses;
038 private $removingPasses;
039
040 /**
041 * Constructor.
042 */
043 public function __construct()
044 {
045 $this->mergePass = new MergeExtensionConfigurationPass();
046
047 $this->afterRemovingPasses = array();
048 $this->beforeOptimizationPasses = array();
049 $this->beforeRemovingPasses = array();
050
051 $this->optimizationPasses = array(
052 new ResolveDefinitionTemplatesPass(),
053 new ResolveParameterPlaceHoldersPass(),
054 new CheckDefinitionValidityPass(),
055 new ResolveReferencesToAliasesPass(),
056 new ResolveInvalidReferencesPass(),
057 new AnalyzeServiceReferencesPass(true),
058 new CheckCircularReferencesPass(),
059 new CheckReferenceValidityPass(),
060 );
061
062 $this->removingPasses = array(
063 new RemovePrivateAliasesPass(),
064 new RemoveAbstractDefinitionsPass(),
065 new ReplaceAliasByActualDefinitionPass(),
066 new RepeatedPass(array(
067 new AnalyzeServiceReferencesPass(),
068 new InlineServiceDefinitionsPass(),
069 new AnalyzeServiceReferencesPass(),
070 new RemoveUnusedDefinitionsPass(),
071 )),
072 new CheckExceptionOnInvalidReferenceBehaviorPass(),
073 );
074 }
075
076 /**
077 * Returns all passes in order to be processed.
078 *
079 * @return array An array of all passes to process
080 *
081 * @api
082 */
083 public function getPasses()
084 {
085 return array_merge(
086 array($this->mergePass),
087 $this->beforeOptimizationPasses,
088 $this->optimizationPasses,
089 $this->beforeRemovingPasses,
090 $this->removingPasses,
091 $this->afterRemovingPasses
092 );
093 }
094
095 /**
096 * Adds a pass.
097 *
098 * @param CompilerPassInterface $pass A Compiler pass
099 * @param string $type The pass type
100 *
101 * @throws InvalidArgumentException when a pass type doesn't exist
102 *
103 * @api
104 */
105 public function addPass(CompilerPassInterface $pass, $type = self::TYPE_BEFORE_OPTIMIZATION)
106 {
107 $property = $type.'Passes';
108 if (!isset($this->$property)) {
109 throw new InvalidArgumentException(sprintf('Invalid type "%s".', $type));
110 }
111
112 $passes = &$this->$property;
113 $passes[] = $pass;
114 }
115
116 /**
117 * Gets all passes for the AfterRemoving pass.
118 *
119 * @return array An array of passes
120 *
121 * @api
122 */
123 public function getAfterRemovingPasses()
124 {
125 return $this->afterRemovingPasses;
126 }
127
128 /**
129 * Gets all passes for the BeforeOptimization pass.
130 *
131 * @return array An array of passes
132 *
133 * @api
134 */
135 public function getBeforeOptimizationPasses()
136 {
137 return $this->beforeOptimizationPasses;
138 }
139
140 /**
141 * Gets all passes for the BeforeRemoving pass.
142 *
143 * @return array An array of passes
144 *
145 * @api
146 */
147 public function getBeforeRemovingPasses()
148 {
149 return $this->beforeRemovingPasses;
150 }
151
152 /**
153 * Gets all passes for the Optimization pass.
154 *
155 * @return array An array of passes
156 *
157 * @api
158 */
159 public function getOptimizationPasses()
160 {
161 return $this->optimizationPasses;
162 }
163
164 /**
165 * Gets all passes for the Removing pass.
166 *
167 * @return array An array of passes
168 *
169 * @api
170 */
171 public function getRemovingPasses()
172 {
173 return $this->removingPasses;
174 }
175
176 /**
177 * Gets all passes for the Merge pass.
178 *
179 * @return array An array of passes
180 *
181 * @api
182 */
183 public function getMergePass()
184 {
185 return $this->mergePass;
186 }
187
188 /**
189 * Sets the Merge Pass.
190 *
191 * @param CompilerPassInterface $pass The merge pass
192 *
193 * @api
194 */
195 public function setMergePass(CompilerPassInterface $pass)
196 {
197 $this->mergePass = $pass;
198 }
199
200 /**
201 * Sets the AfterRemoving passes.
202 *
203 * @param array $passes An array of passes
204 *
205 * @api
206 */
207 public function setAfterRemovingPasses(array $passes)
208 {
209 $this->afterRemovingPasses = $passes;
210 }
211
212 /**
213 * Sets the BeforeOptimization passes.
214 *
215 * @param array $passes An array of passes
216 *
217 * @api
218 */
219 public function setBeforeOptimizationPasses(array $passes)
220 {
221 $this->beforeOptimizationPasses = $passes;
222 }
223
224 /**
225 * Sets the BeforeRemoving passes.
226 *
227 * @param array $passes An array of passes
228 *
229 * @api
230 */
231 public function setBeforeRemovingPasses(array $passes)
232 {
233 $this->beforeRemovingPasses = $passes;
234 }
235
236 /**
237 * Sets the Optimization passes.
238 *
239 * @param array $passes An array of passes
240 *
241 * @api
242 */
243 public function setOptimizationPasses(array $passes)
244 {
245 $this->optimizationPasses = $passes;
246 }
247
248 /**
249 * Sets the Removing passes.
250 *
251 * @param array $passes An array of passes
252 *
253 * @api
254 */
255 public function setRemovingPasses(array $passes)
256 {
257 $this->removingPasses = $passes;
258 }
259 }
260