Blog de Gonzalo

Blog de programación de Gonzalo López

METAPROGRAMACIÓN EN PHP

PHP

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.

Compartir en twitter