Палец вверх 2
Перевод
Перевод

Как мне вызвать скрипт php от Grails?

Хорошо, я создаю проект Grails, но у меня есть устаревший код php. Вместо того, чтобы заново изобретать колесо, есть ли способ вызвать код php из моего отличного набора?

Например, есть php-скрипт с именем post_handler.php, в котором в качестве входного параметра используется метод postRequest, в котором $ data (данные, необходимые для публикации). Как бы я просто позвонил post_handler-> postRequest (data)? Прошу прощения, если этот вопрос уже был задан и получен ответ. Я посмотрел и не смог ничего найти.

Заранее спасибо.

php groovy grails
задан JMecham 29 февр. 2012 г., 4:01:37
источник

3 ответа

Решение 2
Перевод
Перевод

Я бы, вероятно, поместил тонкий API поверх вашего PHP-кода, который позволял бы вам делать вызовы REST, которые возвращают JSON. Затем вы можете очень легко использовать существующий PHP в качестве слоя данных, если захотите. Вы можете использовать HttpBuilder, чтобы очень легко совершать вызовы внешней службы REST, а затем она демаршаллизует строку JSON к объекту.

Если веб-служба работает слишком медленно для вашего уровня коммуникации, вы можете посмотреть на Thrift . Facebook использует это для связи между PHP и Java. Здесь есть несколько уроков, если вы хотите это проверить.

ответ дан Scott 29 февр. 2012 г., 5:47:36
источник
Палец вверх 0
Перевод
Перевод

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

ответ дан Burt Beckwith 29 февр. 2012 г., 7:01:55
источник
Палец вверх 0
Перевод
Перевод

Если вы знаете, где находится PHP-файл, вы можете использовать groovy String.execute () http://groovy.codehaus.org/groovy-jdk/java/lang/String.html#execute (). Который в основном позволяет вам выполнять все, как если бы вы были в командной строке. Я ничего не знаю о PHP, но я хотел бы представить, что вы можете выполнять сценарии PHP из командной строки.

ответ дан Jarred Olson 29 февр. 2012 г., 18:16:16
источник