Миграция PHP в Java
иногда мы можем взять на себя проекты на основе PHP, но поскольку мы являемся Java-house, мы ищем способы превратить PHP-проект (или кодовую базу) в Java-проект.
подходы, которые мы придумали для работы в смешанном контексте Java / PHP:
- PHP в интерфейсе и Java в бэкэнде с отдельными передними (PHP+JavaScript) и задними (Java+SQL) командами
- использование обеих технологий в Java webapp, например через дуб с одной или несколькими командами
- миграция всего на Java
мы не пробовали ни один из этих подходов, поскольку нам повезло иметь достаточно Java-проектов для работы.
видите ли вы другие подходы, или вы пробовали какой-либо из описанных подходов?
7 ответов
Я использовал Quercus. Я думаю, что если он поддерживает что-то вроде Drupal, то он, вероятно, довольно зрелый. Если ваше приложение PHP работает из коробки, а затем предлагает вам очень постепенный путь обновления до Java, так как вы можете написать свои собственные плагины на Java и предоставить их слою PHP, например, с помощью JDBC back-end.
насколько это просто, зависит от того, насколько хорошо разделены слои в приложении PHP. Например, если слой представления хорошо разделен, вы возможно, удастся заменить логику контроллера и модели приложением Spring MVC, которое использует "QuercusView" для представления - вы можете повторно использовать логику представления PHP.
вы также должны рассмотреть, как вы можете сделать обзор кода PHP-возможно, скрипт, который извлекает все вызовы функций, импортирует и т. д. таким образом, вы можете быстро проверить поддержку Quercus для них.
Извините, я не использовал мост PHP-Java, но я думаю, что библиотека Quercus довольно зрелая в эти дни, так что это был бы мой первый выбор для поэтапной миграции.
мой опыт работы с Querces не так хорош. Возможно, он улучшился, но когда я попробовал его что-то вроде два года назад (долгое время, я знаю), он был далек от завершения и еще не поддерживал все функции. Кроме того, если ваше приложение использует некоторые расширения (например, из PECL), вы столкнетесь с трудностями при запуске и выполнении запросов.
в настоящее время мы находимся в процессе миграции веб-приложения с PHP на Java. Мы разрабатываем SOA, и мы, вероятно, замените некоторые объекты доступа к данным в приложении PHP версией, которая взаимодействует с внутренними веб-сервисами. В настоящее время мы используем бережливость в качестве протокола для наших внутренних веб-сервисов, фреймворк, который также имеет клиент для PHP. Мы ожидаем, что это повысит гибкость во время миграции (позволяя нам делать пошаговую миграцию, а не все сразу)
PHP / Java Bridge может быть, вас заинтересует:
мост PHP/Java является реализация потокового, Основанный на XML сетевой протокол, который может используется для подключения собственного скрипта движок, например PHP, Scheme или Python, с виртуальной машиной Java. Это в 50 раз быстрее, чем местные RPC через SOAP, требует меньше ресурсов на стороне веб-сервера. Это быстрее и более надежный чем сразу связь через Java Native Интерфейс, и он не требует дополнительные компоненты для вызова Java процедуры из PHP или PHP процедуры с явы.
НУМИТОН может быть вам полезен:
http://java.dzone.com/announcements/automated-translations-php-jav
The shortest route from PHP to Java
Numiton offers an automated alternative to migrating PHP codebase. This way,
established applications can benefit from the advantages offered by Java in its
enterprise-level capacity.
Some of the risks inherent to any software migration are avoided by using an automated
translation tool. Our PHPtoJava product performs variable type inference,
objectualization and other operations in a uniform manner, the resulting appearance and
behavior being identical to what the users already know.
Of course, the human factor still plays an important role in the post-translation
phases: application fine-tuning and functional testing. The speed and accuracy of the
entire process surpass however those of a manual translation.
One of the applications we have migrated this way is the well-known forum engine
phpBB. The translation result, nBB2, powers our own forum and was recently donated to the
open-source community as a SourceForge project.
PHP в интерфейсе и Java в бэкэнде с отдельным фронтом (PHP + JavaScript) и обратно (Java+SQL) команды
это технически возможно с помощью SOAP
.
использование обеих технологий в Java webapp, например, через Quercus с одна или несколько команд
Я понятия не имею об этом
перенос всего на Java
Это лучший вариант, но он будет занять время в зависимости от размера и сложности вашего проекта.
У меня нет опыта работы с PHP внутри JVM, но я держу пари, что IBM делает. :) Вы можете рассмотреть проект Ноль.
http://www.projectzero.org/php/
похоже на Querces или что-то другое, что кто-то связал. Единственное, что вы не упомянули, что я могу придумать, - это рефакторинг PHP-кода, потому что я предполагаю, что его более старая кодовая база написана в PHP 4.
I know this is 2 years old question but i still want to contribute.
мы переходим от полного портала java к php + java. У нас 14 миллионов пользователей. Этот дизайн не нуждается в веб-службах, потому что мы используем java в качестве поставщика JSON для php и js. Скоро мы увидим результат...
PHP в интерфейсе и Java в бэкэнде с отдельным фронтом (PHP+JavaScript) и обратно (Java+SQL) команды