[ Index ] |
PHP Cross Reference of phpBB-3.2.11-deutsch |
[Summary view] [Print] [Text view]
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 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Nov 11 20:33:01 2020 | Cross-referenced by PHPXref 0.7.1 |