2009-04-22 20 views
14

Para cualquiera que se tropiece con esta pregunta que no sabe qué es Quercus, es una implementación de PHP hecha en Java.¿Es Quercus un reemplazo viable para PHP en entornos Java?

Para un proyecto en el que estoy trabajando actualmente, ofrecemos servicios de páginas php a través de cgi sobre servlets (sé que es torpe, pero es un requisito para admitir código heredado). Estaba emocionado de descubrir el proyecto Quercus porque parecía una ruta prometedora para mover nuestro proyecto a un entorno Java más puro.

tengo unas pocas preguntas acerca de Quercus:

  • ¿Ha utilizado Quercus en un producto de envío?
  • ¿Cuánto de la API php es compatible?
  • ¿Cuáles son los problemas que has tenido al trabajar con él?
  • ¿Ha podido hacer que funcione con Jetty? ¿Alguna vez has escuchado que funcione con Jetty? (No pude resolverlo)

Respuesta

7

Lo he probado con WordPress y el rendimiento fue casi el doble de lo que era una instalación predeterminada de WordPress en Apache/PHP. Lo cual todavía no es tan bueno.

Notamos que aunque Quercus admite los comandos curl en PHP, no admite todas las opciones de curl. Así que las descargas automáticas de complementos no funcionaron. No fue un gran problema, siempre puedes descargar los complementos e instalarlos manualmente. Pero esto era una bandera roja ya que no sabíamos qué más funcionaría. También significaba que la biblioteca PHP de Facebook no funcionaría correctamente (lo más probable).

Si realiza muchas conexiones de bases de datos y llamadas, debería ver un gran aumento de rendimiento en esa área ya que se usará la agrupación de conexiones de bases de datos.

Si está escribiendo el código, diría que es una opción muy viable.Se admite suficiente de PHP que si encuentras algo que no funciona, puedes utilizar un comando PHP diferente que sea compatible, o simplemente usar un comando de Java.

0

Bueno, si comprueba los derechos de autor en la parte inferior de la página de Quercus, verá que está actualizado hasta el '06, por lo que no garantizo ninguna compatibilidad con PHP 5.x.

Pero, ¿por qué querrías tener doble sobrecarga así? También puedes ejecutar java desde php :)

+0

aparentemente hay una versión de php5 aquí: http://quercus.caucho.com/ –

+2

Por lo que he oído, quercus es más rápido para muchas cosas que PHP nativo. – jsight

4

Hice un poco de trabajo evaluando a Quercus y parecía prometedor, pero no funcionó con el proyecto en el que estaba trabajando, ya que estaba basado en Symfony y la naturaleza reflexiva de Symfony no bien manejado por Quercus.

Intenté conseguir varios proyectos PHP de código abierto que funcionaran con él y encontré que tiene una API bastante completa basada en PHP5.

Debería poder hacer que funcione con Jetty. Pude hacerlo funcionar con Tomcat.

Realmente puede pensar en ello como un reemplazo de JSP en una aplicación de Java. La forma en que funciona es paralela a cómo funciona JSP en que compila código de PHP a Java, del mismo modo que compilaría el código JSP a Java.

Creo que la gran desventaja de ir con Jetty sería la imposibilidad de precompilar el código PHP.

Sin embargo, existen bastantes ventajas, incluso si no está mezclando PHP con Java. Si está mezclando los dos, tiene aún más ventajas.

2

El rendimiento de PHP será bueno solo en la versión profesional de quercus. Porque la versión profesional compila el código PHP como código de byte java. Entonces será más rápido.

Pero la edición de código abierto sigue utilizando el intérprete de PHP como se indica en http://en.wikipedia.org/wiki/Resin_Server

Parece que no habrá incremento de rendimiento en edición cómoda de fuente abierta.

Cuestiones relacionadas