Sobes.tech
Middle

¿Para qué sirve la reflexión en PHP?

sobes.tech AI

Respuesta de la IA

La reflexión en PHP permite explorar y modificar la estructura del código en tiempo de ejecución. Esto incluye obtener información sobre clases, objetos, métodos, propiedades, constantes y espacios de nombres.

Aplicaciones principales:

  • Introspección: Obtener metadatos sobre el código existente (nombres de métodos, argumentos, modificadores de acceso).
  • Creación dinámica de objetos y llamada a métodos: Crear instancias de clases y llamar a sus métodos por nombre de cadena.
  • Desarrollo de frameworks y bibliotecas: Crear sistemas flexibles capaces de analizar e interactuar con código de usuario (por ejemplo, contenedores IoC, ORM).
  • Depuración y pruebas: Herramientas para analizar el código en tiempo de ejecución.
  • Generación automática de documentación.

Ejemplo de obtención de información sobre una clase usando ReflectionClass:

<?php
// Obtención de información sobre la clase stdClass
$reflectionClass = new ReflectionClass('stdClass');

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

$methods = $reflectionClass->getMethods();
foreach ($methods as $method) {
    echo $method->getName() . "\n"; // Mostrará los nombres de los métodos (si los hay)
}

Ejemplo de llamada dinámica a un método:

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

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

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

$result = $reflectionMethod->invoke($object, $argument);
echo $result; // Mostrará: Hola, mundo