2009-04-22 4 views
14

Для тех, кто наткнулся на этот вопрос, который не знает, что такое Quercus - это реализация PHP, выполняемая на Java.Является ли Quercus жизнеспособной заменой PHP в средах Java?

Для проекта, над которым я сейчас работаю, мы обслуживаем php-страницы через cgi-сервлеты (я знаю, что это неудобно, но это требование для поддержки устаревшего кода). Я был рад открыть проект Quercus, потому что он выглядел как многообещающий путь для переноса нашего проекта на более чистую среду Java.

У меня есть несколько вопросов, касающихся Quercus:

  • вы использовали Quercus в продукте доставки?
  • Насколько поддерживается php API?
  • Какие у вас есть проблемы с работой?
  • Вы смогли заставить его работать с Jetty? Вы когда-нибудь слышали об этом, работая с Jetty? (Я не мог понять)

ответ

7

Я тестировал его с помощью WordPress, и производительность была почти вдвое больше, чем была установлена ​​в WordPress по умолчанию под обычным Apache/PHP. Что еще не так здорово.

Мы заметили, что, хотя Quercus поддерживает команды curl в PHP, он не поддерживает все параметры завитка. Так что автоматические загрузки плагинов не работали. Это не было большой сделкой, вы всегда можете скачать плагины и установить их вручную. Но это был красный флаг, так как мы не знали, что еще будет работать. Это также означало, что библиотека PHP Facebook не будет работать правильно (скорее всего).

Если вы выполняете множество подключений к базе данных и звоните, вы должны увидеть большой прирост производительности в этой области, поскольку будет использоваться пул соединений с базами данных.

Если вы пишете код, я бы сказал, что это очень жизнеспособный вариант.Достаточно PHP поддерживается, что если вы найдете что-то, что не работает, вы можете использовать другую поддерживаемую команду PHP или просто использовать команду Java.

0

Ну, если вы проверите авторское право внизу страницы Quercus, вы увидите, что оно обновлено до '06, поэтому я не гарантирую поддержку PHP 5.x.

Но почему вы даже хотите иметь двойные издержки? Вы также можете запустить java из php :)

+0

, очевидно, есть версия php5: http://quercus.caucho.com/ –

+2

Из того, что я слышал, quercus быстрее для многих вещей, чем собственный PHP. – jsight

4

Я сделал небольшую работу, оценив Quercus, и это выглядело многообещающим, но не работало с проектом, над которым я работал, поскольку это было основано на Symfony, и отражательный характер Symfony не был хорошо обработан Quercus.

Я пытался получить несколько проектов PHP с открытым исходным кодом, работая с ним, и нашел, что он имеет довольно полный API на основе PHP5.

Вы должны быть способны заставить его работать с Jetty. Мне удалось заставить его работать с Tomcat.

Вы действительно можете думать об этом как о замене JSP в приложении Java. Как он работает параллельно, как работает JSP в том, что вы компилируете код PHP на Java, точно так же, как вы компилируете JSP-код Java.

Я считаю, что большим недостатком перехода с Jetty было бы невозможность прекомпиляции кода PHP.

Однако существует немало преимуществ, даже если вы не смешиваете PHP с Java. Если вы смешиваете два, у вас есть еще больше преимуществ.

3

См ссылку о том, как разработчик сумел использовать Quercus to run PHP on the Google App Engine

Примечание: PHP официально не поддерживается в GAE, но с Quercus вы можете запустить это сейчас.

2

Производительность PHP будет хорошей только в профессиональной версии quercus. Потому что профессиональная версия компилирует PHP-код как java-байтовый код. Так будет быстрее.

Но открытым исходным кодом издание по-прежнему использует интерпретатор PHP, как указано в http://en.wikipedia.org/wiki/Resin_Server

Кажется, что будет никакой производительности не увеличить в открытом soruce издании.

Смежные вопросы