static function create($specs, $values = array(), $arguments = null) { $new = new self(); foreach ($specs as $spec) { $id = $spec->getId(); if (isset($values[$id])) { $new->{$id} = $spec; $spec->setValue($values[$id]); } if ($arguments) { foreach ($arguments as $arg) { $new->addArgument(new Argument($arg)); } } } return $new; }
/** * Creates a method from Reflection Method. * * @param \ReflectionMethod $reflected * * @return Method */ public static function createFromReflection(\ReflectionMethod $reflected) { $method = new self(); $method->setName($reflected->getName()); foreach ($reflected->getParameters() as $parameterReflected) { $argument = new Argument(); $argument->setName($parameterReflected->getName()); $method->addArgument($argument); } return $method; }