Является ли Quercus жизнеспособной заменой PHP в средах Java?

StackOverflow https://stackoverflow.com/questions/777356

  •  13-09-2019
  •  | 
  •  

Вопрос

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

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

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

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

Решение

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

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

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

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

Другие советы

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

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

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

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

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

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

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

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

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

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

Похоже, в open soruce edition повышения производительности не будет.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top