annotate vendor/nikic/php-parser/lib/PhpParser/Builder/Use_.php @ 2:92f882872392

Trusted hosts, + remove migration modules
author Chris Cannam
date Tue, 05 Dec 2017 09:26:43 +0000
parents 4c8ae668cc8c
children 5fb285c0d0e3
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace PhpParser\Builder;
Chris@0 4
Chris@0 5 use PhpParser\BuilderAbstract;
Chris@0 6 use PhpParser\Node;
Chris@0 7 use PhpParser\Node\Stmt;
Chris@0 8
Chris@0 9 /**
Chris@0 10 * @method $this as(string $alias) Sets alias for used name.
Chris@0 11 */
Chris@0 12 class Use_ extends BuilderAbstract {
Chris@0 13 protected $name;
Chris@0 14 protected $type;
Chris@0 15 protected $alias = null;
Chris@0 16
Chris@0 17 /**
Chris@0 18 * Creates a name use (alias) builder.
Chris@0 19 *
Chris@0 20 * @param Node\Name|string $name Name of the entity (namespace, class, function, constant) to alias
Chris@0 21 * @param int $type One of the Stmt\Use_::TYPE_* constants
Chris@0 22 */
Chris@0 23 public function __construct($name, $type) {
Chris@0 24 $this->name = $this->normalizeName($name);
Chris@0 25 $this->type = $type;
Chris@0 26 }
Chris@0 27
Chris@0 28 /**
Chris@0 29 * Sets alias for used name.
Chris@0 30 *
Chris@0 31 * @param string $alias Alias to use (last component of full name by default)
Chris@0 32 *
Chris@0 33 * @return $this The builder instance (for fluid interface)
Chris@0 34 */
Chris@0 35 protected function as_($alias) {
Chris@0 36 $this->alias = $alias;
Chris@0 37 return $this;
Chris@0 38 }
Chris@0 39 public function __call($name, $args) {
Chris@0 40 if (method_exists($this, $name . '_')) {
Chris@0 41 return call_user_func_array(array($this, $name . '_'), $args);
Chris@0 42 }
Chris@0 43
Chris@0 44 throw new \LogicException(sprintf('Method "%s" does not exist', $name));
Chris@0 45 }
Chris@0 46
Chris@0 47 /**
Chris@0 48 * Returns the built node.
Chris@0 49 *
Chris@0 50 * @return Node The built node
Chris@0 51 */
Chris@0 52 public function getNode() {
Chris@0 53 $alias = null !== $this->alias ? $this->alias : $this->name->getLast();
Chris@0 54 return new Stmt\Use_(array(
Chris@0 55 new Stmt\UseUse($this->name, $alias)
Chris@0 56 ), $this->type);
Chris@0 57 }
Chris@0 58 }