1: <?php declare(strict_types=1);
2:
3: namespace PhpParser\Node\Stmt;
4:
5: use PhpParser\Node\Stmt;
6:
7: class Use_ extends Stmt
8: {
9: /**
10: * Unknown type. Both Stmt\Use_ / Stmt\GroupUse and Stmt\UseUse have a $type property, one of them will always be
11: * TYPE_UNKNOWN while the other has one of the three other possible types. For normal use statements the type on the
12: * Stmt\UseUse is unknown. It's only the other way around for mixed group use declarations.
13: */
14: const TYPE_UNKNOWN = 0;
15: /** Class or namespace import */
16: const TYPE_NORMAL = 1;
17: /** Function import */
18: const TYPE_FUNCTION = 2;
19: /** Constant import */
20: const TYPE_CONSTANT = 3;
21:
22: /** @var int Type of alias */
23: public $type;
24: /** @var UseUse[] Aliases */
25: public $uses;
26:
27: /**
28: * Constructs an alias (use) list node.
29: *
30: * @param UseUse[] $uses Aliases
31: * @param int $type Type of alias
32: * @param array $attributes Additional attributes
33: */
34: public function __construct(array $uses, int $type = self::TYPE_NORMAL, array $attributes = []) {
35: $this->attributes = $attributes;
36: $this->type = $type;
37: $this->uses = $uses;
38: }
39:
40: public function getSubNodeNames() : array {
41: return ['type', 'uses'];
42: }
43:
44: public function getType() : string {
45: return 'Stmt_Use';
46: }
47: }
48: