Refleksja w PHP
Nette\Utils\Reflection jest klasą statyczną zawierającą przydatne funkcje do refleksji w PHP. Jego celem jest naprawienie niedociągnięć klas natywnych i ujednolicenie zachowania w różnych wersjach PHP.
Instalacja:
Wszystkie przykłady zakładają, że alias został utworzony:
areCommentsAvailable(): bool
Określenie, czy refleksja ma dostęp do komentarzy PHPdoc. Komentarze mogą być niedostępne z powodu pamięci podręcznej opcode, zobacz na przykład dyrektywę opcache.save-comments.
expandClassName(string $name, ReflectionClass $context): string
Rozwija nazwę klasy $name
do jej pełnej nazwy w kontekście klasy $context
, czyli w kontekście jej
przestrzeni nazw i zdefiniowanych aliasów. Tak więc w rzeczywistości mówi, jak parser PHP $name
zrozumiałby ,
gdyby był napisany w ciele klasy $context
.
getMethodDeclaringMethod(ReflectionMethod $method): ReflectionMethod
Zwraca odbicie metody, które zawiera deklarację metody $method
. Zazwyczaj każda metoda jest swoją własną
deklaracją, ale ciało metody może znajdować się w cechach i pod inną nazwą.
Ponieważ PHP nie dostarcza wystarczających informacji, za pomocą których można określić rzeczywistą deklarację, Nette używa własnej heurystyki, która powinna być wiarygodna.
getPropertyDeclaringClass(ReflectionProperty $prop): ReflectionClass
Zwraca odzwierciedlenie klasy lub cechy, która zawiera deklarację właściwości $prop
. Właściwość może
być w rzeczywistości zadeklarowana w cechach.
Ponieważ PHP nie dostarcza wystarczających informacji, aby określić rzeczywistą deklarację, Nette używa własnej heurystyki, która jest nie wiarygodna.
isBuiltinType(string $type): bool
Określ, czy $type
jest wbudowanym typem PHP. W przeciwnym razie jest to nazwa klasy.
Użyj funkcji Nette\Utils\Validator::isBuiltinType().
toString($reflection): string
Konwertuje odbicie na zrozumiały dla człowieka ciąg znaków.