/** * fromReflection() * * @param ReflectionParameter $reflectionParameter * @return ParameterGenerator */ public static function fromReflection(ParameterReflection $reflectionParameter) { $param = new ParameterGenerator(); $param->setName($reflectionParameter->getName()); if ($reflectionParameter->isArray()) { $param->setType('array'); } else { $typeClass = $reflectionParameter->getClass(); if ($typeClass !== null) { $param->setType($typeClass->getName()); } } $param->setPosition($reflectionParameter->getPosition()); if ($reflectionParameter->isOptional()) { $param->setDefaultValue($reflectionParameter->getDefaultValue()); } $param->setPassedByReference($reflectionParameter->isPassedByReference()); return $param; }
/** * Set the default value for a parameter (if it is optional) * * @param ZendParameterGenerator $parameterGenerator * @param ParameterReflection $reflectionParameter */ private static function setOptionalParameter(ZendParameterGenerator $parameterGenerator, ParameterReflection $reflectionParameter) { if ($reflectionParameter->isOptional()) { try { $parameterGenerator->setDefaultValue($reflectionParameter->getDefaultValue()); } catch (ReflectionException $e) { $parameterGenerator->setDefaultValue(null); } } }