/** * @override - uses `static` to instantiate the parameter * * {@inheritDoc} */ public static function fromReflection(ParameterReflection $reflectionParameter) { /* @var $param self */ $param = new static(); $param->setVariadic($reflectionParameter->isVariadic()); $param->setName($reflectionParameter->getName()); $param->setPosition($reflectionParameter->getPosition()); $type = self::extractParameterType($reflectionParameter); if (null !== $type) { $param->setType($type); } self::setOptionalParameter($param, $reflectionParameter); $param->setPassedByReference($reflectionParameter->isPassedByReference()); return $param; }