StandardReflector.php
1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
namespace WPML\Auryn;
class StandardReflector implements Reflector
{
public function getClass($class)
{
return new \ReflectionClass($class);
}
public function getCtor($class)
{
$reflectionClass = new \ReflectionClass($class);
return $reflectionClass->getConstructor();
}
public function getCtorParams($class)
{
return ($reflectedCtor = $this->getCtor($class))
? $reflectedCtor->getParameters()
: null;
}
public function getParamTypeHint( \ReflectionFunctionAbstract $function, \ReflectionParameter $param ) {
if ( version_compare( '7.1.0', phpversion(), '<' ) ) {
$reflectionClass = $param->getType() && ! $param->getType()->isBuiltin()
? new \ReflectionClass( $param->getType()->getName() )
: null;
} else {
$reflectionClass = $param->getClass();
}
return ( $reflectionClass )
? $reflectionClass->getName()
: null;
}
public function getFunction($functionName)
{
return new \ReflectionFunction($functionName);
}
public function getMethod($classNameOrInstance, $methodName)
{
$className = is_string($classNameOrInstance)
? $classNameOrInstance
: get_class($classNameOrInstance);
return new \ReflectionMethod($className, $methodName);
}
}