Neos\Flow\Reflection\ReflectionService::convertParameterReflectionToArray PHP Метод

convertParameterReflectionToArray() защищенный Метод

Converts the given parameter reflection into an information array
protected convertParameterReflectionToArray ( ParameterReflection $parameter, MethodReflection $method = null ) : array
$parameter ParameterReflection The parameter to reflect
$method MethodReflection The parameter's method
Результат array Parameter information array
    protected function convertParameterReflectionToArray(ParameterReflection $parameter, MethodReflection $method = null)
    {
        $parameterInformation = [self::DATA_PARAMETER_POSITION => $parameter->getPosition()];
        if ($parameter->isPassedByReference()) {
            $parameterInformation[self::DATA_PARAMETER_BY_REFERENCE] = true;
        }
        if ($parameter->isArray()) {
            $parameterInformation[self::DATA_PARAMETER_ARRAY] = true;
        }
        if ($parameter->isOptional()) {
            $parameterInformation[self::DATA_PARAMETER_OPTIONAL] = true;
        }
        if ($parameter->allowsNull()) {
            $parameterInformation[self::DATA_PARAMETER_ALLOWS_NULL] = true;
        }
        $parameterClass = $parameter->getClass();
        if ($parameterClass !== null) {
            $parameterInformation[self::DATA_PARAMETER_CLASS] = $parameterClass->getName();
        }
        if ($parameter->isOptional() && $parameter->isDefaultValueAvailable()) {
            $parameterInformation[self::DATA_PARAMETER_DEFAULT_VALUE] = $parameter->getDefaultValue();
        }
        if ($method !== null) {
            $paramAnnotations = $method->isTaggedWith('param') ? $method->getTagValues('param') : [];
            if (isset($paramAnnotations[$parameter->getPosition()])) {
                $explodedParameters = explode(' ', $paramAnnotations[$parameter->getPosition()]);
                if (count($explodedParameters) >= 2) {
                    $parameterType = $this->expandType($method->getDeclaringClass(), $explodedParameters[0]);
                    $parameterInformation[self::DATA_PARAMETER_TYPE] = $this->cleanClassName($parameterType);
                }
            }
            if (!$parameter->isArray()) {
                $builtinType = $parameter->getBuiltinType();
                if ($builtinType !== null) {
                    $parameterInformation[self::DATA_PARAMETER_TYPE] = $builtinType;
                    $parameterInformation[self::DATA_PARAMETER_SCALAR_DECLARATION] = true;
                }
            }
        }
        if (!isset($parameterInformation[self::DATA_PARAMETER_TYPE]) && $parameterClass !== null) {
            $parameterInformation[self::DATA_PARAMETER_TYPE] = $this->cleanClassName($parameterClass->getName());
        } elseif (!isset($parameterInformation[self::DATA_PARAMETER_TYPE])) {
            $parameterInformation[self::DATA_PARAMETER_TYPE] = 'mixed';
        }
        return $parameterInformation;
    }
ReflectionService