Sobes.tech
Middle

À quoi sert la réflexion en PHP?

sobes.tech IA

Réponse de l'IA

La réflexion en PHP permet d'explorer et de modifier la structure du code lors de l'exécution. Cela inclut l'obtention d'informations sur les classes, objets, méthodes, propriétés, constantes et espaces de noms.

Applications principales:

  • Introspection: Obtenir des métadonnées sur le code existant (noms des méthodes, arguments, modificateurs d'accès).
  • Création dynamique d'objets et appel de méthodes: Créer des instances de classes et appeler leurs méthodes par nom de chaîne.
  • Développement de frameworks et bibliothèques: Créer des systèmes flexibles capables d'analyser et d'interagir avec le code utilisateur (par exemple, conteneurs IoC, ORM).
  • Débogage et tests: Outils pour analyser le code lors de l'exécution.
  • Génération automatique de documentation.

Exemple d'obtention d'informations sur une classe avec ReflectionClass:

<?php
// Obtention d'informations sur la classe stdClass
$reflectionClass = new ReflectionClass('stdClass');

echo $reflectionClass->getName(); // Affichera : stdClass

$methods = $reflectionClass->getMethods();
foreach ($methods as $method) {
    echo $method->getName() . "\n"; // Affichera les noms des méthodes (si présents)
}

Exemple d'appel dynamique d'une méthode:

<?php
class MyClass {
    public function myMethod($arg) {
        return "Bonjour, " . $arg;
    }
}

$className = 'MyClass';
$methodName = 'myMethod';
$argument = 'monde';

$reflectionMethod = new ReflectionMethod($className, $methodName);
$object = new $className();

$result = $reflectionMethod->invoke($object, $argument);
echo $result; // Affichera : Bonjour, monde