annotate vendor/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 5fb285c0d0e3
children
rev   line source
Chris@13 1 <?php declare(strict_types=1);
Chris@0 2
Chris@0 3 namespace PhpParser\Builder;
Chris@0 4
Chris@13 5 use PhpParser\BuilderHelpers;
Chris@0 6 use PhpParser\Node;
Chris@0 7
Chris@0 8 abstract class FunctionLike extends Declaration
Chris@0 9 {
Chris@0 10 protected $returnByRef = false;
Chris@13 11 protected $params = [];
Chris@0 12
Chris@0 13 /** @var string|Node\Name|Node\NullableType|null */
Chris@0 14 protected $returnType = null;
Chris@0 15
Chris@0 16 /**
Chris@0 17 * Make the function return by reference.
Chris@0 18 *
Chris@0 19 * @return $this The builder instance (for fluid interface)
Chris@0 20 */
Chris@0 21 public function makeReturnByRef() {
Chris@0 22 $this->returnByRef = true;
Chris@0 23
Chris@0 24 return $this;
Chris@0 25 }
Chris@0 26
Chris@0 27 /**
Chris@0 28 * Adds a parameter.
Chris@0 29 *
Chris@0 30 * @param Node\Param|Param $param The parameter to add
Chris@0 31 *
Chris@0 32 * @return $this The builder instance (for fluid interface)
Chris@0 33 */
Chris@0 34 public function addParam($param) {
Chris@13 35 $param = BuilderHelpers::normalizeNode($param);
Chris@0 36
Chris@0 37 if (!$param instanceof Node\Param) {
Chris@0 38 throw new \LogicException(sprintf('Expected parameter node, got "%s"', $param->getType()));
Chris@0 39 }
Chris@0 40
Chris@0 41 $this->params[] = $param;
Chris@0 42
Chris@0 43 return $this;
Chris@0 44 }
Chris@0 45
Chris@0 46 /**
Chris@0 47 * Adds multiple parameters.
Chris@0 48 *
Chris@0 49 * @param array $params The parameters to add
Chris@0 50 *
Chris@0 51 * @return $this The builder instance (for fluid interface)
Chris@0 52 */
Chris@0 53 public function addParams(array $params) {
Chris@0 54 foreach ($params as $param) {
Chris@0 55 $this->addParam($param);
Chris@0 56 }
Chris@0 57
Chris@0 58 return $this;
Chris@0 59 }
Chris@0 60
Chris@0 61 /**
Chris@0 62 * Sets the return type for PHP 7.
Chris@0 63 *
Chris@13 64 * @param string|Node\Name|Node\NullableType $type One of array, callable, string, int, float,
Chris@13 65 * bool, iterable, or a class/interface name.
Chris@0 66 *
Chris@0 67 * @return $this The builder instance (for fluid interface)
Chris@0 68 */
Chris@13 69 public function setReturnType($type) {
Chris@13 70 $this->returnType = BuilderHelpers::normalizeType($type);
Chris@0 71
Chris@0 72 return $this;
Chris@0 73 }
Chris@0 74 }