Nette\PhpGenerator\Method::setParameters PHP Method

setParameters() public method

public setParameters ( array $val ) : self
$val array
return self
    public function setParameters(array $val)
    {
        $this->parameters = [];
        foreach ($val as $v) {
            if (!$v instanceof Parameter) {
                throw new Nette\InvalidArgumentException('Argument must be Nette\\PhpGenerator\\Parameter[].');
            }
            $this->parameters[$v->getName()] = $v;
        }
        return $this;
    }

Usage Example

Beispiel #1
0
 /**
  * @param \ReflectionMethod $from
  * @param Code\Method $method
  * @throws \ReflectionException
  * @return Code\Method
  */
 public static function expandTypeHints(\ReflectionMethod $from, Code\Method $method)
 {
     $parameters = $method->getParameters();
     /** @var Code\Parameter[] $parameters */
     foreach ($from->getParameters() as $paramRefl) {
         try {
             $parameters[$paramRefl->getName()]->setTypeHint($paramRefl->isArray() ? 'array' : ($paramRefl->getClass() ? '\\' . $paramRefl->getClass()->getName() : ''));
         } catch (\ReflectionException $e) {
             if (preg_match('#Class (.+) does not exist#', $e->getMessage(), $m)) {
                 $parameters[$paramRefl->getName()]->setTypeHint('\\' . $m[1]);
             } else {
                 throw $e;
             }
         }
     }
     $method->setParameters($parameters);
     if (!$method->getVisibility()) {
         $method->setVisibility('public');
     }
     return $method;
 }