[ Index ]

PHP Cross Reference of phpBB-3.2.11-deutsch

title

Body

[close]

/vendor/symfony/dependency-injection/Compiler/ -> PassConfig.php (source)

   1  <?php
   2  
   3  /*
   4   * This file is part of the Symfony package.
   5   *
   6   * (c) Fabien Potencier <fabien@symfony.com>
   7   *
   8   * For the full copyright and license information, please view the LICENSE
   9   * file that was distributed with this source code.
  10   */
  11  
  12  namespace Symfony\Component\DependencyInjection\Compiler;
  13  
  14  use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
  15  
  16  /**
  17   * Compiler Pass Configuration.
  18   *
  19   * This class has a default configuration embedded.
  20   *
  21   * @author Johannes M. Schmitt <schmittjoh@gmail.com>
  22   */
  23  class PassConfig
  24  {
  25      const TYPE_AFTER_REMOVING = 'afterRemoving';
  26      const TYPE_BEFORE_OPTIMIZATION = 'beforeOptimization';
  27      const TYPE_BEFORE_REMOVING = 'beforeRemoving';
  28      const TYPE_OPTIMIZE = 'optimization';
  29      const TYPE_REMOVE = 'removing';
  30  
  31      private $mergePass;
  32      private $afterRemovingPasses = array();
  33      private $beforeOptimizationPasses = array();
  34      private $beforeRemovingPasses = array();
  35      private $optimizationPasses;
  36      private $removingPasses;
  37  
  38      public function __construct()
  39      {
  40          $this->mergePass = new MergeExtensionConfigurationPass();
  41  
  42          $this->optimizationPasses = array(
  43              new ExtensionCompilerPass(),
  44              new ResolveDefinitionTemplatesPass(),
  45              new DecoratorServicePass(),
  46              new ResolveParameterPlaceHoldersPass(),
  47              new CheckDefinitionValidityPass(),
  48              new ResolveReferencesToAliasesPass(),
  49              new ResolveInvalidReferencesPass(),
  50              new AutowirePass(),
  51              new AnalyzeServiceReferencesPass(true),
  52              new CheckCircularReferencesPass(),
  53              new CheckReferenceValidityPass(),
  54          );
  55  
  56          $this->removingPasses = array(
  57              new RemovePrivateAliasesPass(),
  58              new ReplaceAliasByActualDefinitionPass(),
  59              new RemoveAbstractDefinitionsPass(),
  60              new RepeatedPass(array(
  61                  new AnalyzeServiceReferencesPass(),
  62                  new InlineServiceDefinitionsPass(),
  63                  new AnalyzeServiceReferencesPass(),
  64                  new RemoveUnusedDefinitionsPass(),
  65              )),
  66              new CheckExceptionOnInvalidReferenceBehaviorPass(),
  67          );
  68      }
  69  
  70      /**
  71       * Returns all passes in order to be processed.
  72       *
  73       * @return array An array of all passes to process
  74       */
  75      public function getPasses()
  76      {
  77          return array_merge(
  78              array($this->mergePass),
  79              $this->beforeOptimizationPasses,
  80              $this->optimizationPasses,
  81              $this->beforeRemovingPasses,
  82              $this->removingPasses,
  83              $this->afterRemovingPasses
  84          );
  85      }
  86  
  87      /**
  88       * Adds a pass.
  89       *
  90       * @param CompilerPassInterface $pass A Compiler pass
  91       * @param string                $type The pass type
  92       *
  93       * @throws InvalidArgumentException when a pass type doesn't exist
  94       */
  95      public function addPass(CompilerPassInterface $pass, $type = self::TYPE_BEFORE_OPTIMIZATION)
  96      {
  97          $property = $type.'Passes';
  98          if (!isset($this->$property)) {
  99              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      public function setMergePass(CompilerPassInterface $pass)
 166      {
 167          $this->mergePass = $pass;
 168      }
 169  
 170      /**
 171       * Sets the AfterRemoving passes.
 172       *
 173       * @param array $passes An array of passes
 174       */
 175      public function setAfterRemovingPasses(array $passes)
 176      {
 177          $this->afterRemovingPasses = $passes;
 178      }
 179  
 180      /**
 181       * Sets the BeforeOptimization passes.
 182       *
 183       * @param array $passes An array of passes
 184       */
 185      public function setBeforeOptimizationPasses(array $passes)
 186      {
 187          $this->beforeOptimizationPasses = $passes;
 188      }
 189  
 190      /**
 191       * Sets the BeforeRemoving passes.
 192       *
 193       * @param array $passes An array of passes
 194       */
 195      public function setBeforeRemovingPasses(array $passes)
 196      {
 197          $this->beforeRemovingPasses = $passes;
 198      }
 199  
 200      /**
 201       * Sets the Optimization passes.
 202       *
 203       * @param array $passes An array of passes
 204       */
 205      public function setOptimizationPasses(array $passes)
 206      {
 207          $this->optimizationPasses = $passes;
 208      }
 209  
 210      /**
 211       * Sets the Removing passes.
 212       *
 213       * @param array $passes An array of passes
 214       */
 215      public function setRemovingPasses(array $passes)
 216      {
 217          $this->removingPasses = $passes;
 218      }
 219  }


Generated: Wed Nov 11 20:33:01 2020 Cross-referenced by PHPXref 0.7.1