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