name: ArgumentMetadataFactory class_comment: null dependencies: [] properties: [] methods: - name: getType visibility: private parameters: - name: parameter comment: "# * Builds {@see ArgumentMetadata} objects based on the given Controller.\n\ # *\n# * @author Iltar van der Berg \n# */\n# final class ArgumentMetadataFactory\ \ implements ArgumentMetadataFactoryInterface\n# {\n# public function createArgumentMetadata(string|object|array\ \ $controller, ?\\ReflectionFunctionAbstract $reflector = null): array\n# {\n\ # $arguments = [];\n# $reflector ??= new \\ReflectionFunction($controller(...));\n\ # $controllerName = $this->getPrettyName($reflector);\n# \n# foreach ($reflector->getParameters()\ \ as $param) {\n# $attributes = [];\n# foreach ($param->getAttributes() as $reflectionAttribute)\ \ {\n# if (class_exists($reflectionAttribute->getName())) {\n# $attributes[] =\ \ $reflectionAttribute->newInstance();\n# }\n# }\n# \n# $arguments[] = new ArgumentMetadata($param->getName(),\ \ $this->getType($param), $param->isVariadic(), $param->isDefaultValueAvailable(),\ \ $param->isDefaultValueAvailable() ? $param->getDefaultValue() : null, $param->allowsNull(),\ \ $attributes, $controllerName);\n# }\n# \n# return $arguments;\n# }\n# \n# /**\n\ # * Returns an associated type to the given parameter if available." - name: getPrettyName visibility: private parameters: - name: r comment: null traits: [] interfaces: - ArgumentMetadataFactoryInterface