sonarrradarrplexorganizrnginxdashboardlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximux
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							64 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							64 lines
						
					
					
						
							1.5 KiB
						
					
					
				| <?php declare(strict_types=1); | |
| 
 | |
| namespace PhpParser\Builder; | |
| 
 | |
| use PhpParser\Builder; | |
| use PhpParser\BuilderHelpers; | |
| use PhpParser\Node; | |
| use PhpParser\Node\Stmt; | |
| 
 | |
| class TraitUse implements Builder | |
| { | |
|     protected $traits = []; | |
|     protected $adaptations = []; | |
| 
 | |
|     /** | |
|      * Creates a trait use builder. | |
|      * | |
|      * @param Node\Name|string ...$traits Names of used traits | |
|      */ | |
|     public function __construct(...$traits) { | |
|         foreach ($traits as $trait) { | |
|             $this->and($trait); | |
|         } | |
|     } | |
| 
 | |
|     /** | |
|      * Adds used trait. | |
|      * | |
|      * @param Node\Name|string $trait Trait name | |
|      * | |
|      * @return $this The builder instance (for fluid interface) | |
|      */ | |
|     public function and($trait) { | |
|         $this->traits[] = BuilderHelpers::normalizeName($trait); | |
|         return $this; | |
|     } | |
| 
 | |
|     /** | |
|      * Adds trait adaptation. | |
|      * | |
|      * @param Stmt\TraitUseAdaptation|Builder\TraitUseAdaptation $adaptation Trait adaptation | |
|      * | |
|      * @return $this The builder instance (for fluid interface) | |
|      */ | |
|     public function with($adaptation) { | |
|         $adaptation = BuilderHelpers::normalizeNode($adaptation); | |
| 
 | |
|         if (!$adaptation instanceof Stmt\TraitUseAdaptation) { | |
|             throw new \LogicException('Adaptation must have type TraitUseAdaptation'); | |
|         } | |
| 
 | |
|         $this->adaptations[] = $adaptation; | |
|         return $this; | |
|     } | |
| 
 | |
|     /** | |
|      * Returns the built node. | |
|      * | |
|      * @return Node The built node | |
|      */ | |
|     public function getNode() : Node { | |
|         return new Stmt\TraitUse($this->traits, $this->adaptations); | |
|     } | |
| }
 | |
| 
 |