| @@ -20,11 +20,22 @@ | ||
| 20 | 20 | : null; |
| 21 | 21 | } |
| 22 | 22 | |
| 23 | 23 | public function getParamTypeHint( \ReflectionFunctionAbstract $function, \ReflectionParameter $param ) { |
| 24 | - return ( $reflectionClass = $param->getClass() ) | |
| 25 | - ? $reflectionClass->getName() | |
| 26 | - : null; | |
| 24 | + if ( version_compare( PHP_VERSION, '8.0.0', '<' ) ) { | |
| 25 | + return ( $reflectionClass = $param->getClass() ) | |
| 26 | + ? $reflectionClass->getName() | |
| 27 | + : null; | |
| 28 | + } | |
| 29 | + | |
| 30 | + $type = $param->getType(); | |
| 31 | + | |
| 32 | + if ( 'ReflectionNamedType' === get_class( $type ) ) { | |
| 33 | + $class = new \ReflectionClass( $type->getName() ); | |
| 34 | + return $class->getName(); | |
| 35 | + } | |
| 36 | + | |
| 37 | + return null; | |
| 27 | 38 | } |
| 28 | 39 | |
| 29 | 40 | public function getFunction( $functionName ) { |
| 30 | 41 | return new \ReflectionFunction( $functionName ); |