Первое, что пришло на ум, это Quercus (от создателей сервлета Resin), как упоминал Джорди. Это Java-реализация среды выполнения PHP, которая якобы позволяет вам получать доступ к объектам Java напрямую из вашего PHP (часть меня говорит: «Да, наконец-то»).
С другой стороны, хотя мне не терпелось попробовать проект таким образом, я бы, вероятно, сохранил разделение между Java EE и PHP, если бы не было реальной причины для интеграции на уровне кода.
Вместо этого, почему бы вам не попробовать подход SOA , где ваш PHP-интерфейс вызывает в приложении Struts через определенный REST или SOAP API (здесь решающий голос за REST) через HTTP ,
http://mydomain.com/rest/this-is-a-method-call?parameter1=foo
Вы можете использовать Struts для построения всей своей "бэкэнд-модели", работающей только с бизнес-логикой и данными и полностью игнорирующей представление. Поскольку вы предоставляете API с этими URL-адресами, и вы в основном создаете REST API (который может пригодиться позже, если вам когда-нибудь понадобится предоставить больший доступ к вашему бэкэнду, возможно, с помощью других клиентских приложений).
Ваше PHP-приложение может быть построено отдельно (и довольно тонко), вызывая REST API (возможно, с использованием Curl), как если бы оно вызывало базу данных или некоторую собственную библиотеку классов PHP.
Во всяком случае, это то, что я бы сделал. Но, если вы используете Quercus, пожалуйста, напишите, как все прошло.