Отражение на PHP
Nette\Utils\Reflection е статичен клас с полезни функции за отразяване на PHP. Целта му е да отстрани недостатъците на оригиналните класове и да уеднакви поведението на различните версии на PHP.
Монтаж:
Всички примери предполагат, че псевдонимът вече е създаден:
areCommentsAvailable(): bool
Определяне дали отражението има достъп до коментарите на PHPdoc. Коментарите може да не са налични поради кеша на опкодовете, вижте например директивата opcache.save-comments.
expandClassName(string $name, ReflectionClass $context): string
Разширява името на класа $name
до пълното му име в контекста на
класа $context
, т.е. в контекста на неговото пространство от имена и
дефинираните псевдоними. Следователно това, което всъщност се казва
тук, е начинът, по който PHP анализаторът $name
би го разбрал, ако
беше написано в тялото на класа $context
.
getMethodDeclaringMethod(ReflectionMethod $method): ReflectionMethod
Връща отражение на метод, съдържащо декларацията на метода
$method
. Обикновено всеки метод е със собствена декларация, но
тялото на метода може да бъде в тава и под различно име.
Тъй като PHP не предоставя достатъчно информация, за да определи действителната декларация, Nette използва собствена евристика, която трябва да е надеждна.
getPropertyDeclaringClass(ReflectionProperty $prop): ReflectionClass
Връща отражение на клас или черта, което съдържа декларация за
свойство $prop
. Свойството може да бъде декларирано в черта.
Тъй като PHP не предоставя достатъчно информация, за да определи действителната декларация, Nette използва собствени евристични методи, които не са надеждни.
toString($reflection): string
Преобразува отражението в разбираем за човека низ.