Файл: 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);
}
}