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) */ protected function as_($alias) { $this->alias = $alias; return $this; } public function __call($name, $args) { if (method_exists($this, $name . '_')) { return $this->{$name . '_'}(...$args); } throw new \LogicException(sprintf('Method "%s" does not exist', $name)); } /** * Returns the built node. * * @return Node The built node */ public function getNode() { $alias = null !== $this->alias ? $this->alias : $this->name->getLast(); return new Stmt\Use_(array( new Stmt\UseUse($this->name, $alias) ), $this->type); } }