METAPROGRAMACIÓN EN PHP: QUÉ ES Y EJEMPLOS

La metaprogramación en PHP permite escribir programas que, de alguna forma, pueden modificar su comportamiento durante la ejecución y esto se logra a través de técnicas que generan, manipulan o evalúan código en tiempo de ejecución, proporcionando flexibilidad y, en ocasiones, eficiencia al desarrollo.
Técnicas de metaprogramación:
  • Funciones anónimas.
  • Variables variables.
  • Métodos mágicos.
  • eval: Permite ejecutar código PHP almacenado en una cadena de texto, aunque hay que tener mucho cuidado con eval por razones de seguridad.
    $codigo = 'echo "Probando eval";';
    eval($codigo);  // Muestra "Probando con eval"
    
  • Reflection: PHP proporciona una API de reflexión que permite inspeccionar y manipular clases, métodos y propiedades en tiempo de ejecución.
    class MiClase {
        private $atributoPrivado = "Valor secreto";
    }
    
    $reflejo = new ReflectionClass('MiClase');
    $propiedad = $reflejo->getProperty('atributoPrivado');
    $propiedad->setAccessible(true);  // Permite acceder a propiedades privadas
    
    $objeto = new MiClase();
    echo $propiedad->getValue($objeto);  // Muestra "Valor secreto"
    
  • Funciones callback: call_user_func y call_user_func_array.
  • Clases anónimas.