Queremos mostrarte la mejor solución que hemos encontrado en todo internet. Nosotros queremos que te sea de ayuda y si quieres comentarnos algo que nos pueda ayudar a perfeccionar nuestra información hazlo libremente.
Solución:
Tal vez no comprendo completamente el contexto de por qué crees que necesitas hacer esto, pero no creo que las razones por las que publicaste sean particularmente convincentes.
-
No muchas aplicaciones web están vinculadas a la CPU, por lo que no creo que te impresione el aumento en el rendimiento. Compilarlo en código nativo no hará que su E/S o base de datos espere más. Hay mejores formas de escalar una aplicación web que cambiar a C++, y la mayoría de ellas implican reducir el tiempo que su secuencia de comandos espera datos de la base de datos o el disco (como fragmentar su base de datos o mover datos a una caché de RAM).
-
¿Las dependencias de la biblioteca son realmente un gran problema? Muchas de las bibliotecas más populares ahora se incluyen con el núcleo de PHP, además de que cualquier biblioteca adicional generalmente es muy fácil de instalar. Una vez que los tiene, no los toca, así que no estoy seguro de por qué esta es una razón particularmente convincente para cambiar a C++.
-
Esta es en realidad una MUY MALA razón para cambiar a C++. La mayoría de los entornos de alojamiento compartido le permitirán ejecutar scripts en un entorno PHP, pero muy pocos o ninguno (a menos que esté buscando un VPS) le permitirán ejecutar un binario arbitrario como lo haría con una aplicación C++. Hay mejores formas de controlar la legibilidad de la fuente en entornos compartidos, como usar los permisos de archivo correctamente. Si le preocupa que los clientes roben su código PHP, bueno, muy mal. Puedes intentar ofuscarlo todo lo que quieras, pero generalmente no tiene sentido al final del día.
-
¿Qué características específicas de C++ necesita desesperadamente que PHP no ofrece? Para ser honesto, la idea de que tu programador de PHP promedio juegue con los punteros y la asignación de memoria me asusta muchísimo. Hay muy buenos marcos disponibles para PHP, y le sugiero que agote por completo todas esas opciones antes de cambiar el idioma de todo su código base solo para algunas características que le gustan en un marco en particular.
-
Usted mencionó la compatibilidad multiplataforma en su comentario… Honestamente, PHP hará que esto sea más fácil que C++. La implementación de PHP está relativamente estandarizada en todas las plataformas (a excepción de algunas funciones de nivel inferior), mientras que es probable que utilice un compilador y llamadas al sistema diferentes en C++.
Esto también podría ponerse interesante en poco tiempo:
https://developers.facebook.com/blog/post/2010/02/02/hiphop-for-php–move-fast/
Es lo que mantiene vivo a Facebook 😉 Una tecnología que traduce y compila php a C++ y será de código abierto. Espero que sea realmente bien probado.
Después de mucha investigación, encontré http://www.phpcompiler.org/doc/maketea.pdf y http://rosecompiler.org/ROSE_Tutorial/ROSE-0.9.4a-Tutorial.pdf. Dado que el código fuente de PHP se puede analizar y luego traducir a XML, convertirlo a C++ es solo una cuestión de XSLT. Además, PHPCompiler también admite complementos y varias transformaciones de código fuente (basadas en transformaciones AST). Creo que debería ser suficiente por ahora.
Algunas referencias adicionales:
- http://rosecompiler.org
- http://rosecompiler.org/ROSE_UserManual/ROSE-UserManual.pdf
¡Gracias a todos por participar en la discusión!