PHP reflexió
Nette\Utils\Reflection egy statikus osztály, amely hasznos funkciókat tartalmaz a PHP reflexióhoz. Célja a natív osztályok hibáinak kijavítása és a viselkedés egységesítése a PHP különböző verzióiban.
Telepítés:
Minden példa feltételezi, hogy a következő osztály alias van definiálva:
areCommentsAvailable(): bool
Kideríti, hogy a reflection hozzáfér-e a PHPdoc megjegyzésekhez. Előfordulhat, hogy a megjegyzések nem állnak rendelkezésre az opcode cache miatt, lásd például az opcache.save-comments direktívát.
expandClassName(string $name, ReflectionClass $context): string
Kibővíti a $name
az osztály teljes nevére a $context
, azaz a névtér és a definiált aliasok
kontextusában. Így azt adja vissza, ahogyan a PHP-elemző értelmezné a $name
-t, ha az a $context
testében lenne leírva.
getMethodDeclaringMethod(ReflectionMethod $method): ReflectionMethod
Visszaadja egy olyan metódus tükörképét, amely tartalmazza a $method
deklarációját. Általában minden
metódus saját deklaráció, de a metódus teste is lehet a traitben és más néven.
Mivel a PHP nem ad elég információt a tényleges deklaráció meghatározásához, a Nette a saját heurisztikáját használja, amelynek megbízhatónak kell lennie.
getPropertyDeclaringClass(ReflectionProperty $prop): ReflectionClass
Visszaadja egy olyan osztály vagy tulajdonság tükörképét, amely tartalmazza a $prop
tulajdonság
deklarációját. A tulajdonság a tulajdonságban is deklarálható.
Mivel a PHP nem ad elég információt a tényleges deklaráció meghatározásához, a Nette a saját heurisztikáját használja, amely nem megbízható.
isBuiltinType(string $type): bool
Megállapítja, hogy a $type
PHP beépített típus-e. Ellenkező esetben az osztály neve.
Használja a Nette\Utils\Validator::isBuiltinType() függvényt.
toString($reflection): string
A tükrözést emberi olvasásra alkalmas karakterlánccá alakítja.