Middle
Na čo je v PHP reflexia?
sobes.tech AI
Odpoveď od AI
Reflexia v PHP umožňuje skúmať a upravovať štruktúru kódu počas behu. To zahŕňa získavanie informácií o triedach, objektoch, metódach, vlastnostiach, konštantách a priestore mien.
Hlavné použitia:
- Inšpekcia: Získavanie metadát o existujúcom kóde (názvy metód, argumenty, modifikátory prístupu).
- Dynamické vytváranie objektov a volanie metód: Vytváranie inštancií tried a volanie ich metód podľa reťazca s názvom.
- Vývoj rámcov a knižníc: Vytváranie flexibilných systémov schopných analyzovať a interagovať s používateľským kódom (napríklad IoC kontajnery, ORM).
- Ladenie a testovanie: Nástroje na analýzu kódu počas behu.
- Automatické generovanie dokumentácie.
Príklad získania informácií o triede pomocou ReflectionClass:
<?php
// Získanie informácií o triede stdClass
$reflectionClass = new ReflectionClass('stdClass');
echo $reflectionClass->getName(); // Vypíše: stdClass
$methods = $reflectionClass->getMethods();
foreach ($methods as $method) {
echo $method->getName() . "\n"; // Vypíše názvy metód (ak sú)
}
Príklad dynamického volania metódy:
<?php
class MyClass {
public function myMethod($arg) {
return "Ahoj, " . $arg;
}
}
$className = 'MyClass';
$methodName = 'myMethod';
$argument = 'svet';
$reflectionMethod = new ReflectionMethod($className, $methodName);
$object = new $className();
$result = $reflectionMethod->invoke($object, $argument);
echo $result; // Vypíše: Ahoj, svet