Mercurial > hg > isophonics-drupal-site
comparison vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactory.php @ 16:c2387f117808
Routine composer update
author | Chris Cannam |
---|---|
date | Tue, 10 Jul 2018 15:07:59 +0100 |
parents | 4c8ae668cc8c |
children | 129ea1e6d783 |
comparison
equal
deleted
inserted
replaced
15:e200cb7efeb3 | 16:c2387f117808 |
---|---|
56 } else { | 56 } else { |
57 $reflection = new \ReflectionFunction($controller); | 57 $reflection = new \ReflectionFunction($controller); |
58 } | 58 } |
59 | 59 |
60 foreach ($reflection->getParameters() as $param) { | 60 foreach ($reflection->getParameters() as $param) { |
61 $arguments[] = new ArgumentMetadata($param->getName(), $this->getType($param), $this->isVariadic($param), $this->hasDefaultValue($param), $this->getDefaultValue($param), $param->allowsNull()); | 61 $arguments[] = new ArgumentMetadata($param->getName(), $this->getType($param, $reflection), $this->isVariadic($param), $this->hasDefaultValue($param), $this->getDefaultValue($param), $param->allowsNull()); |
62 } | 62 } |
63 | 63 |
64 return $arguments; | 64 return $arguments; |
65 } | 65 } |
66 | 66 |
105 * | 105 * |
106 * @param \ReflectionParameter $parameter | 106 * @param \ReflectionParameter $parameter |
107 * | 107 * |
108 * @return null|string | 108 * @return null|string |
109 */ | 109 */ |
110 private function getType(\ReflectionParameter $parameter) | 110 private function getType(\ReflectionParameter $parameter, \ReflectionFunctionAbstract $function) |
111 { | 111 { |
112 if ($this->supportsParameterType) { | 112 if ($this->supportsParameterType) { |
113 if (!$type = $parameter->getType()) { | 113 if (!$type = $parameter->getType()) { |
114 return; | 114 return; |
115 } | 115 } |
116 $typeName = $type instanceof \ReflectionNamedType ? $type->getName() : $type->__toString(); | 116 $name = $type instanceof \ReflectionNamedType ? $type->getName() : $type->__toString(); |
117 if ('array' === $typeName && !$type->isBuiltin()) { | 117 if ('array' === $name && !$type->isBuiltin()) { |
118 // Special case for HHVM with variadics | 118 // Special case for HHVM with variadics |
119 return; | 119 return; |
120 } | 120 } |
121 } elseif (preg_match('/^(?:[^ ]++ ){4}([a-zA-Z_\x7F-\xFF][^ ]++)/', $parameter, $name)) { | |
122 $name = $name[1]; | |
123 } else { | |
124 return; | |
125 } | |
126 $lcName = strtolower($name); | |
121 | 127 |
122 return $typeName; | 128 if ('self' !== $lcName && 'parent' !== $lcName) { |
129 return $name; | |
123 } | 130 } |
124 | 131 if (!$function instanceof \ReflectionMethod) { |
125 if (preg_match('/^(?:[^ ]++ ){4}([a-zA-Z_\x7F-\xFF][^ ]++)/', $parameter, $info)) { | 132 return; |
126 return $info[1]; | 133 } |
134 if ('self' === $lcName) { | |
135 return $function->getDeclaringClass()->name; | |
136 } | |
137 if ($parent = $function->getDeclaringClass()->getParentClass()) { | |
138 return $parent->name; | |
127 } | 139 } |
128 } | 140 } |
129 } | 141 } |