HipHop para PHP ( HPHPc ) es un transpilador PHP descontinuado creado por Facebook . Al usar HPHPc como compilador de código fuente a código fuente , el código PHP se traduce a C++ , se compila en un binario y se ejecuta como ejecutable , a diferencia de la ruta de ejecución habitual de PHP, en la que el código PHP se transforma en códigos de operación y se interpreta . HPHPc consta principalmente de códigos fuente de C++, C y PHP, y es un software gratuito y de código abierto distribuido bajo la Licencia PHP .
La motivación original detrás de HipHop era ahorrar recursos en los servidores de Facebook, dada la gran base de código PHP de facebook.com. A medida que avanzaba el desarrollo de HipHop, se comprendió que HipHop podía aumentar sustancialmente la velocidad de las aplicaciones PHP en general. Se han observado aumentos en el rendimiento de generación de páginas web por factores de hasta seis en comparación con Zend PHP. [4] [5] [6] [7] [8] Un objetivo declarado de HPHPc era proporcionar un alto nivel de compatibilidad para Zend PHP, donde la mayoría de los programas PHP basados en Zend se ejecutan sin modificaciones en HPHPc. [6] HPHPc se convirtió originalmente en código abierto a principios de 2010. [1]
Como complemento a HPHPc, los ingenieros de Facebook también crearon un "modo de desarrollador" de HipHop (versión interpretada de un motor de ejecución PHP, conocido como HPHPi ) y el depurador de HipHop (conocido como HPHPd ). Estas adiciones permiten a los desarrolladores ejecutar código PHP a través de la misma lógica proporcionada por HPHPc, al mismo tiempo que hacen posible depurar código PHP de forma interactiva definiendo relojes , puntos de interrupción , etc. La ejecución del código a través de HPHPi produce un rendimiento menor en comparación con HPHPc, pero los beneficios para el desarrollador hicieron que, en ese momento, valiera la pena tener que mantener estos dos motores de ejecución para producción y desarrollo. HPHPi y HPHPd también se convirtieron en código abierto en 2010. [1]
En muchos sentidos, HPHPc cumplió sus objetivos, especialmente dentro de Facebook, ya que permitió que facebook.com funcionara mucho más rápido y utilizara menos recursos. Sin embargo, a principios de 2013, Facebook desaprobó HPHPc en favor de HipHop Virtual Machine (HHVM), que es un motor de ejecución basado en compilación just-in-time (JIT) para PHP, también desarrollado por Facebook. [2] [9] Hubo muchas razones para esto; una de ellas fue la curva aplanada de HPHPc para futuras mejoras de rendimiento. Además, HPHPc no era totalmente compatible con el lenguaje PHP, incluidas las construcciones create_function()
y eval()
, e implicaba un proceso de implementación específico que consumía tiempo y recursos y que requería que se compilara y distribuyera un binario de más de 1 GB a muchos servidores en poco tiempo. Además, mantener HPHPc y HPHPi en paralelo (como era necesario para la consistencia de los entornos de producción y desarrollo) se estaba volviendo engorroso. Finalmente, HPHPc no era un reemplazo directo para Zend, lo que requería que los clientes externos cambiaran todos sus procesos de desarrollo e implementación para usar HPHPc. [2]