Является ли Quercus жизнеспособной заменой PHP в средах Java? - PullRequest
14 голосов
/ 22 апреля 2009

Для тех, кто сталкивается с этим вопросом и не знает, что такое Quercus - это реализация PHP, выполненная на Java.

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

У меня есть несколько вопросов относительно Quercus:

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

Ответы [ 5 ]

7 голосов
/ 22 апреля 2009

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

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

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

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

4 голосов
/ 22 апреля 2009

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

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

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

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

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

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

3 голосов
/ 27 апреля 2009

См. Ссылку о том, как разработчику удалось использовать Quercus для запуска PHP на Google App Engine

ПРИМЕЧАНИЕ: PHP официально не поддерживается в GAE, но с Quercus вы можете запустить его сейчас.

2 голосов
/ 18 мая 2012

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

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

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

0 голосов
/ 22 апреля 2009

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

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

...