Sobes.tech
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