2017-08-18 22:57:27 +02:00
|
|
|
<?php declare(strict_types=1);
|
2011-06-05 18:40:04 +02:00
|
|
|
|
2014-02-06 14:44:16 +01:00
|
|
|
namespace PhpParser\Node\Stmt;
|
|
|
|
|
|
|
|
use PhpParser\Node\Stmt;
|
|
|
|
|
|
|
|
class Use_ extends Stmt
|
2011-06-05 18:40:04 +02:00
|
|
|
{
|
2015-06-13 11:27:38 +02:00
|
|
|
/**
|
|
|
|
* Unknown type. Both Stmt\Use_ / Stmt\GroupUse and Stmt\UseUse have a $type property, one of them will always be
|
|
|
|
* TYPE_UNKNOWN while the other has one of the three other possible types. For normal use statements the type on the
|
|
|
|
* Stmt\UseUse is unknown. It's only the other way around for mixed group use declarations.
|
|
|
|
*/
|
|
|
|
const TYPE_UNKNOWN = 0;
|
|
|
|
/** Class or namespace import */
|
|
|
|
const TYPE_NORMAL = 1;
|
|
|
|
/** Function import */
|
2014-03-26 22:33:45 +01:00
|
|
|
const TYPE_FUNCTION = 2;
|
2015-06-13 11:27:38 +02:00
|
|
|
/** Constant import */
|
2014-03-26 22:33:45 +01:00
|
|
|
const TYPE_CONSTANT = 3;
|
|
|
|
|
2015-02-28 18:44:28 +01:00
|
|
|
/** @var int Type of alias */
|
|
|
|
public $type;
|
|
|
|
/** @var UseUse[] Aliases */
|
|
|
|
public $uses;
|
|
|
|
|
2011-09-22 20:27:12 +02:00
|
|
|
/**
|
2011-10-15 19:28:15 +02:00
|
|
|
* Constructs an alias (use) list node.
|
2011-09-22 20:27:12 +02:00
|
|
|
*
|
2014-02-06 14:44:16 +01:00
|
|
|
* @param UseUse[] $uses Aliases
|
2014-03-26 22:33:45 +01:00
|
|
|
* @param int $type Type of alias
|
2014-02-06 14:44:16 +01:00
|
|
|
* @param array $attributes Additional attributes
|
2011-09-22 20:27:12 +02:00
|
|
|
*/
|
2017-08-13 14:06:08 +02:00
|
|
|
public function __construct(array $uses, int $type = self::TYPE_NORMAL, array $attributes = []) {
|
2015-05-02 22:17:34 +02:00
|
|
|
parent::__construct($attributes);
|
2015-02-28 18:44:28 +01:00
|
|
|
$this->type = $type;
|
|
|
|
$this->uses = $uses;
|
|
|
|
}
|
|
|
|
|
2017-04-28 21:40:59 +02:00
|
|
|
public function getSubNodeNames() : array {
|
2017-08-13 14:06:08 +02:00
|
|
|
return ['type', 'uses'];
|
2011-09-22 20:27:12 +02:00
|
|
|
}
|
2015-02-28 18:44:28 +01:00
|
|
|
}
|