* @license http://www.apache.org/licenses/LICENSE-2.0 * @link http://phpsx.org */ class Native implements ResolverInterface { /** * @inheritDoc */ public function resolveClass(\ReflectionClass $reflection): ?TypeInterface { return null; } /** * @inheritDoc */ public function resolveProperty(\ReflectionProperty $reflection): ?TypeInterface { if (!method_exists($reflection, 'getType')) { // for everything < PHP 7.4 return null; } $type = $reflection->getType(); if ($type instanceof \ReflectionNamedType) { return $this->getPropertyForType($type, $reflection); } return null; } private function getPropertyForType(\ReflectionNamedType $type, \ReflectionProperty $property): ?TypeInterface { $name = $type->getName(); if ($name === 'string') { return TypeFactory::getString(); } elseif ($name === 'float') { return TypeFactory::getNumber(); } elseif ($name === 'int') { return TypeFactory::getInteger(); } elseif ($name === 'bool') { return TypeFactory::getBoolean(); } elseif ($name === 'array') { // in this case we have no way to determine the type inside the // array in the future this is maybe possible return null; } elseif ($name === 'void') { return null; } elseif ($name === 'self') { $class = $property->getDeclaringClass()->getName(); return TypeFactory::getReference($class); } elseif (class_exists($name)) { return TypeFactory::getReference($name); } return null; } } __halt_compiler();----SIGNATURE:----CQvaKGXyVIsUJQQvXC5MdW5gvbxz6ZuhpPbDwi5AZY1UBT/8JOUzhOFrCpI9PRPiHmfo08x5a0zliLNilORV377zJzhtu3IkXyd0uE75m/oe/mdMvaIGt1GvOEngvUheWJEYUFwMxKlHgbq5tdg6x1qo0TwLnAKYycpeXZ7y1ReR++DK/vJxI0cloA7QU7Pai//EY94mp7PhOgl/f4boib19v4aLQFanCP4RykRx6FIq9RzCaU8trfd92hz+Ma96UcGcvx3xEFSzykfrKY6FQs2sznRiPhYxIB/efxgpR8tQKaxgm6tRJHRGUtWsITn3CnEIwJrv88lajTSqrIkLQ7sTydsimW6cGTk1KjjMkuta/dVByns6kurbMOPKRe7qc/ymSIJ/W5d0Sb+a+8hQGv2dUZdEpQhK5EdXs2vXm+ZCr5Gz3yO8WU408q5nN6i9fpKajE9JSMZUv5vVpG8QwsEa/X8zM1N9OP9tDSwlF1O4mQ+bawUOV+hlLYRqpglhvtWgx2iReplmGnG5EufhR2y+rJ/KtrU7ulkmMYSBxhTahtbjOPnj9XXrTGOTtHeDZ9xqBZ06dQbntDOoHs0QhJ4mDsW+2U8JQ/v1jjxemg8laAB9ao2hYce/KiVjWTOHZA6I4bPymG3FDt9fnu3xYiiIYkHmhbvZ0BDtbh/Fbdg=----ATTACHMENT:----OTcwOTU5MDcxMDk3ODgyMyAxMzA4MzU5NjUwMDkxMDUxIDc1ODA4NDA5NzI0ODMwMDk=