Reflexão PHP
Nette\Utils\Reflection é uma classe estática com funções úteis para a reflexão em PHP. Seu propósito é corrigir falhas em classes nativas e unificar o comportamento através de diferentes versões do PHP.
Instalação:
Todos os exemplos assumem que a seguinte classe está definida:
areCommentsAvailable(): bool
Descobre se a reflexão tem acesso aos comentários do PHPdoc. Comentários podem não estar disponíveis devido ao cache opcode, veja por exemplo a diretiva opcache.save-comments.
expandClassName(string $name, ReflectionClass $context): string
Expande o $name
da classe para nome completo no contexto do $context
, ou seja, no contexto de seu
namespace e pseudônimos definidos. Assim, ele retorna como o analisador do PHP entenderia $name
se fosse escrito no
corpo do $context
.
getMethodDeclaringMethod(ReflectionMethod $method): ReflectionMethod
Retorna uma reflexão de um método que contém uma declaração de $method
. Normalmente, cada método é sua
própria declaração, mas o corpo do método também pode estar no traço e sob um nome diferente.
Como o PHP não fornece informações suficientes para determinar a declaração real, a Nette utiliza sua própria heurística, que **deveria ser*** confiável.
getPropertyDeclaringClass(ReflectionProperty $prop): ReflectionClass
Retorna um reflexo de uma classe ou traço que contém uma declaração de propriedade $prop
. Os bens também
podem ser declarados no traço.
Como o PHP não fornece informações suficientes para determinar a declaração real, Nette utiliza sua própria heurística, a qual ** não é*** confiável.
isBuiltinType(string $type): bool
Determina se $type
é do tipo PHP incorporado. Caso contrário, é o nome da classe.
Use Nette\UtilsValidator::isBuiltinType().
toString($reflection): string
Converte um reflexo em um fio legível por humanos.