2009-04-22 3 views
14

Pour quiconque trébuche sur cette question qui ne sait pas ce qu'est Quercus - c'est une implémentation de PHP faite en Java.Quercus est-il un remplacement viable de PHP dans les environnements Java?

Pour un projet sur lequel je travaille actuellement, nous diffusons des pages php via des servlets cgi (je sais que c'est un peu maladroit, mais c'est une obligation de supporter du code existant). J'étais enthousiaste à l'idée de découvrir le projet Quercus, car il semblait être un moyen prometteur de faire évoluer notre projet vers un environnement Java plus pur.

J'ai quelques questions concernant Quercus:

  • Avez-vous utilisé Quercus dans un produit d'expédition?
  • Quelle partie de l'API php est supportée?
  • Quels sont les pièges que vous avez eu à travailler avec?
  • Avez-vous été capable de le faire fonctionner avec Jetty? En avez-vous déjà entendu parler avec Jetty? (Je ne pouvais pas le comprendre)

Répondre

7

Je l'ai testé avec WordPress et la performance était presque le double de celle d'une installation par défaut de WordPress sous Apache/PHP. Ce qui n'est toujours pas génial.

Nous avons remarqué que Quercus supporte les commandes curl en PHP, mais ne supporte pas toutes les options curl. Les téléchargements de plugins automatiques n'ont donc pas fonctionné. Ce n'était pas un gros problème, vous pouvez toujours télécharger les plug-ins et les installer manuellement. Mais c'était un drapeau rouge puisque nous ne savions pas quoi d'autre fonctionnerait. Cela signifiait aussi que la bibliothèque PHP de Facebook ne fonctionnerait pas correctement (très probablement).

Si vous effectuez un grand nombre de connexions à la base de données et d'appels, vous devriez assister à une augmentation importante des performances dans ce domaine, car le regroupement de connexions à la base de données sera utilisé.

Si vous écrivez le code, je dirais que c'est une option très viable.Assez de PHP est supporté que si vous trouvez quelque chose qui ne fonctionne pas, vous pouvez utiliser une autre commande PHP qui est supportée, ou simplement utiliser une commande Java.

0

Eh bien, si vous vérifiez les droits d'auteur au bas de la page Quercus vous voyez qu'il est mis à jour jusqu'à '06, donc je ne garantis aucun support PHP 5.x.

Mais pourquoi voudriez-vous même avoir le double overhead comme ça? Vous pouvez exécuter java à partir de php aussi :)

+0

apparemment il y a une version php5 ici: http://quercus.caucho.com/ –

+2

D'après ce que j'ai entendu, quercus est plus rapide pour beaucoup de choses que PHP natif. – jsight

4

J'ai fait un peu de travail pour évaluer Quercus et cela semblait prometteur, mais cela n'a pas fonctionné avec le projet sur lequel je travaillais, car c'était basé sur Symfony et la nature réflexive de Symfony n'était pas bien géré par Quercus.

J'ai essayé d'obtenir un certain nombre de projets PHP open source et je l'ai trouvé avec une API PHP5 assez complète.

Vous devriez pouvoir l'utiliser avec Jetty. J'ai réussi à le faire fonctionner avec Tomcat.

Vous pouvez vraiment y penser en remplacement de JSP dans une application Java. La façon dont cela fonctionne correspond à la façon dont JSP fonctionne en ce que vous compilez du code PHP en Java, tout comme vous compilez JSP en code Java.

Je crois que le gros inconvénient d'aller avec Jetty serait l'impossibilité de précompiler le code PHP.

Il y a cependant quelques avantages, même si vous ne mélangez pas PHP et Java. Si vous mélangez les deux, vous avez encore plus d'avantages.

2

La performance de PHP sera bonne seulement dans la version professionnelle de quercus. Parce que la version professionnelle compile le code PHP en tant que code java byte. Donc ce sera plus rapide.

Mais l'édition open source utilise toujours l'interpréteur PHP comme indiqué dans http://en.wikipedia.org/wiki/Resin_Server

Il semble qu'il n'y aura pas de performance booster dans l'édition soruce ouverte.

Questions connexes