1 | <?php |
||
24 | class ReflectionAnnotatedClass extends ReflectionClass implements AnnotatedReflectorInterface |
||
25 | { |
||
26 | |||
27 | /** |
||
28 | * Annotations collection |
||
29 | * @var AnnotationsCollection |
||
30 | */ |
||
31 | private $annotations = null; |
||
32 | |||
33 | /** |
||
34 | * Addendum instance |
||
35 | * @var Addendum |
||
36 | */ |
||
37 | private $addendum = null; |
||
38 | |||
39 | 46 | public function __construct($class, Addendum $addendum = null) |
|
46 | |||
47 | 45 | public function hasAnnotation($class) |
|
51 | |||
52 | 14 | public function getAnnotation($annotation) |
|
56 | |||
57 | public function getAnnotations() |
||
61 | |||
62 | 21 | public function getAllAnnotations($restriction = false) |
|
66 | |||
67 | public function getConstructor() |
||
71 | |||
72 | 3 | public function getMethod($name) |
|
73 | { |
||
74 | 3 | return $this->createReflectionAnnotatedMethod(parent::getMethod($name)); |
|
75 | } |
||
76 | |||
77 | 21 | public function getMethods($filter = -1) |
|
78 | { |
||
79 | 21 | $result = []; |
|
80 | 21 | foreach (parent::getMethods($filter) as $method) |
|
81 | { |
||
82 | 3 | $result[] = $this->createReflectionAnnotatedMethod($method); |
|
83 | } |
||
84 | 21 | return $result; |
|
85 | } |
||
86 | |||
87 | 2 | public function getProperty($name) |
|
88 | { |
||
89 | 2 | return $this->createReflectionAnnotatedProperty(parent::getProperty($name)); |
|
90 | } |
||
91 | |||
92 | 23 | public function getProperties($filter = -1) |
|
93 | { |
||
94 | 23 | $result = []; |
|
95 | 23 | foreach (parent::getProperties($filter) as $property) |
|
96 | { |
||
97 | 15 | $result[] = $this->createReflectionAnnotatedProperty($property); |
|
98 | } |
||
99 | 21 | return $result; |
|
100 | } |
||
101 | |||
102 | 43 | public function getInterfaces() |
|
103 | { |
||
104 | 43 | $result = []; |
|
105 | 43 | foreach (parent::getInterfaces() as $interface) |
|
106 | { |
||
107 | 38 | $result[] = $this->createReflectionAnnotatedClass($interface); |
|
108 | } |
||
109 | 43 | return $result; |
|
110 | } |
||
111 | |||
112 | 43 | public function getParentClass() |
|
113 | { |
||
114 | 43 | $class = parent::getParentClass(); |
|
115 | 43 | return $this->createReflectionAnnotatedClass($class); |
|
116 | } |
||
117 | |||
118 | 43 | private function createReflectionAnnotatedClass($class) |
|
119 | { |
||
120 | 43 | return ($class !== false) ? new ReflectionAnnotatedClass($class->name, $this->addendum) : false; |
|
121 | } |
||
122 | |||
123 | 6 | private function createReflectionAnnotatedMethod($method) |
|
124 | { |
||
125 | 6 | return ($method !== null) ? new ReflectionAnnotatedMethod($this->name, $method->name, $this->addendum) : null; |
|
126 | } |
||
127 | |||
128 | 17 | private function createReflectionAnnotatedProperty($property) |
|
132 | |||
133 | } |
||
134 |
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example: