Files
apimacro/vendor/nikic/php-parser/lib/PhpParser/Builder/Use_.php

50 lines
1.2 KiB
PHP
Raw Normal View History

2024-05-07 12:17:25 +02:00
<?php declare(strict_types=1);
namespace PhpParser\Builder;
use PhpParser\Builder;
use PhpParser\BuilderHelpers;
use PhpParser\Node;
use PhpParser\Node\Stmt;
2024-05-17 12:24:19 +00:00
class Use_ implements Builder {
protected Node\Name $name;
/** @var Stmt\Use_::TYPE_* */
protected int $type;
protected ?string $alias = null;
2024-05-07 12:17:25 +02:00
/**
* Creates a name use (alias) builder.
*
* @param Node\Name|string $name Name of the entity (namespace, class, function, constant) to alias
2024-05-17 12:24:19 +00:00
* @param Stmt\Use_::TYPE_* $type One of the Stmt\Use_::TYPE_* constants
2024-05-07 12:17:25 +02:00
*/
public function __construct($name, int $type) {
$this->name = BuilderHelpers::normalizeName($name);
$this->type = $type;
}
/**
* Sets alias for used name.
*
* @param string $alias Alias to use (last component of full name by default)
*
* @return $this The builder instance (for fluid interface)
*/
public function as(string $alias) {
$this->alias = $alias;
return $this;
}
/**
* Returns the built node.
*
* @return Stmt\Use_ The built node
*/
2024-05-17 12:24:19 +00:00
public function getNode(): Node {
2024-05-07 12:17:25 +02:00
return new Stmt\Use_([
2024-05-17 12:24:19 +00:00
new Node\UseItem($this->name, $this->alias)
2024-05-07 12:17:25 +02:00
], $this->type);
}
}