Reflectarea PHP
Nette\Utils\Reflection este o clasă statică cu funcții utile pentru reflecția PHP. Scopul său este de a corecta defectele din clasele native și de a unifica comportamentul în diferite versiuni ale PHP.
Instalare:
Toate exemplele presupun că este definit următorul alias de clasă:
areCommentsAvailable(): bool
Află dacă reflecția are acces la comentariile PHPdoc. Este posibil ca comentariile să nu fie disponibile din cauza cache-ului opcode, a se vedea, de exemplu, directiva opcache.save-comments.
expandClassName(string $name, ReflectionClass $context): string
Extinde $name
a clasei la numele complet în contextul $context
, adică în contextul spațiului său
de nume și al aliasurilor definite. Astfel, returnează modul în care parserul PHP ar înțelege $name
dacă ar fi
scris în corpul $context
.
getMethodDeclaringMethod(ReflectionMethod $method): ReflectionMethod
Returnează o reflectare a unei metode care conține o declarație $method
. De obicei, fiecare metodă este
o declarație proprie, dar corpul metodei poate fi, de asemenea, în trăsătură și sub un nume diferit.
Deoarece PHP nu oferă suficiente informații pentru a determina declarația reală, Nette utilizează propria euristică, care ar trebui să fie fiabilă.
getPropertyDeclaringClass(ReflectionProperty $prop): ReflectionClass
Returnează o reflectare a unei clase sau trăsături care conține o declarație a proprietății $prop
.
Proprietatea poate fi, de asemenea, declarată în trăsătură.
Deoarece PHP nu oferă suficiente informații pentru a determina declarația reală, Nette utilizează propriile euristici, care nu sunt fiabile.
isBuiltinType(string $type): bool
Determină dacă $type
este un tip încorporat în PHP. În caz contrar, este numele clasei.
Utilizați Nette\Utils\Validator::isBuiltinType().
toString($reflection): string
Convertește o reflecție într-un șir de caractere lizibil pentru oameni.