sonarrradarrplexorganizrnginxdashboardmuximuxlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboard
		
		
		
		
			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);
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 |