Neos\Flow\Reflection\ParameterReflection::getBuiltinType PHP Method

getBuiltinType() public method

public getBuiltinType ( ) : string
return string The name of a builtin type (e.g. string, int) if it was declared for the parameter (scalar type declaration), null otherwise
    public function getBuiltinType()
    {
        if (!is_callable(array($this, 'getType'))) {
            return null;
        }
        $type = $this->getType();
        if ($type === null || !$type->isBuiltin()) {
            return null;
        }
        return (string) $type;
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * Converts the given parameter reflection into an information array
  *
  * @param ParameterReflection $parameter The parameter to reflect
  * @param MethodReflection $method The parameter's method
  * @return 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;
 }