Chris@13: returnByRef = true; Chris@0: Chris@0: return $this; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Adds a parameter. Chris@0: * Chris@0: * @param Node\Param|Param $param The parameter to add Chris@0: * Chris@0: * @return $this The builder instance (for fluid interface) Chris@0: */ Chris@0: public function addParam($param) { Chris@13: $param = BuilderHelpers::normalizeNode($param); Chris@0: Chris@0: if (!$param instanceof Node\Param) { Chris@0: throw new \LogicException(sprintf('Expected parameter node, got "%s"', $param->getType())); Chris@0: } Chris@0: Chris@0: $this->params[] = $param; Chris@0: Chris@0: return $this; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Adds multiple parameters. Chris@0: * Chris@0: * @param array $params The parameters to add Chris@0: * Chris@0: * @return $this The builder instance (for fluid interface) Chris@0: */ Chris@0: public function addParams(array $params) { Chris@0: foreach ($params as $param) { Chris@0: $this->addParam($param); Chris@0: } Chris@0: Chris@0: return $this; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Sets the return type for PHP 7. Chris@0: * Chris@13: * @param string|Node\Name|Node\NullableType $type One of array, callable, string, int, float, Chris@13: * bool, iterable, or a class/interface name. Chris@0: * Chris@0: * @return $this The builder instance (for fluid interface) Chris@0: */ Chris@13: public function setReturnType($type) { Chris@13: $this->returnType = BuilderHelpers::normalizeType($type); Chris@0: Chris@0: return $this; Chris@0: } Chris@0: }