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.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

PassConfig.php

Zuletzt modifiziert: 09.10.2024, 12:58 - Dateigröße: 6.01 KiB


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