Вход Регистрация
Файл: vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php
Строк: 55
<?php declare(strict_types=1);

namespace 
PhpParserBuilder;

use 
PhpParserBuilder;
use 
PhpParserBuilderHelpers;
use 
PhpParserNode;
use 
PhpParserNodeStmt;

class 
TraitUse implements Builder
{
    protected 
$traits = [];
    protected 
$adaptations = [];

    
/**
     * Creates a trait use builder.
     *
     * @param NodeName|string ...$traits Names of used traits
     */
    
public function __construct(...$traits) {
        foreach (
$traits as $trait) {
            
$this->and($trait);
        }
    }

    
/**
     * Adds used trait.
     *
     * @param NodeName|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 StmtTraitUseAdaptation|BuilderTraitUseAdaptation $adaptation Trait adaptation
     *
     * @return $this The builder instance (for fluid interface)
     */
    
public function with($adaptation) {
        
$adaptation BuilderHelpers::normalizeNode($adaptation);

        if (!
$adaptation instanceof StmtTraitUseAdaptation) {
            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 
StmtTraitUse($this->traits$this->adaptations);
    }
}
Онлайн: 0
Реклама