Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. TraitUse.php

class TraitUse

Same name in this branch
  1. 11.1.x vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php \PhpParser\Node\Stmt\TraitUse

Hierarchy

  • class \PhpParser\Builder\TraitUse implements \PhpParser\Builder

Expanded class hierarchy of TraitUse

File

vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php, line 10

Namespace

PhpParser\Builder
View source
class TraitUse implements Builder {
    
    /** @var Node\Name[] */
    protected array $traits = [];
    
    /** @var Stmt\TraitUseAdaptation[] */
    protected array $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);
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title
TraitUse::$adaptations protected property @var Stmt\TraitUseAdaptation[]
TraitUse::$traits protected property @var Node\Name[]
TraitUse::and public function Adds used trait.
TraitUse::getNode public function Returns the built node. Overrides Builder::getNode
TraitUse::with public function Adds trait adaptation.
TraitUse::__construct public function Creates a trait use builder.

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal