Intereting Posts
Контроллер cakephp не найден на сервере производства Regex извлекает только IPv4-адреса из текста preg_match точный номер PHP-сессия для отслеживания уникальных просмотров страниц Ошибка при вызове хранимой процедуры через php. Литерал не соответствует строке формата Класс расширения Laravel Ошибка отправки почты с использованием codeigniter Предупреждение: mysqli_stmt :: close () : недопустимый объект или ресурс mysqli_stmt … почему? Как я могу решить эту ошибку? Устаревший: mysql_escape_string (): эта функция устарела; вместо этого используйте mysql_real_escape_string () вместо Нечувствительная к регистру функция in_array JQuery Mobile, событие панели запускается только при размещении во внешнем .js Написать текстовый файл и заставить его загрузить с помощью php WordPress: создание нового поля usermeta для пользователей Создание PDF-файлов с PHP iconv_strlen вызывает таймаут выполнения, запущенный на MAMP

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

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

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

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

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

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

    Мы заметили, что, хотя Quercus поддерживает команды curl в PHP, он не поддерживает все варианты завитка. Так что автоматические загрузки плагинов не работали. Это не было большой сделкой, вы всегда можете скачать плагины и установить их вручную. Но это был красный флаг, так как мы не знали, что еще будет работать. Это также означало, что библиотека 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

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

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

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