2016-05-30 5 views
2

Я хотел бы начать использовать golang. Для этого я дал небольшой проект. У меня уже есть сайт (классический php, mysql, css, html).Связь между PHP & Golang

Я хотел бы экспортировать некоторые черты в сценарий golang. (например, вычислять Pi.).

На самом деле, когда я нажимаю на кнопку, PHP-алгоритм выполняет эту работу. Есть ли практика использования php и golang.

Я думал о сокете. (сервер golang, клиент php) или базу данных. Но это будет результат с большим количеством запросов SQL.

Я надеюсь, что вы поможете мне,

Благодаря

+1

Невозможно напрямую поговорить с PHP. Параметры, которые у вас есть, создают API-интерфейс Golang, который запускается где-то, а затем использует PHP Curl или Javascript AJAX для получения информации. –

ответ

4

Лучшим решением является использование сокета. Любые другие «шаблоны» будут использовать сокет. Например, вы можете использовать для взаимодействия процессов ZMQ. ZMQ предоставит вам доступ к низкоуровневым сокетам с высоким уровнем (сокет на стероидах).

Использование базы данных - не будет рассматриваться как асинхронное решение, но оно также может быть использовано. Он должен основываться на доступных ресурсах и задачах.

ZMQ PHP binding

ZMQ Go Binding

P.S. У меня был опыт комбинирования php + Erlang. Поэтому мое решение - универсально.

+0

Очень близка к шаблону очереди, есть «базы данных в памяти/кэши в памяти», такие как Memcache или Redis. Последний, redis, очень эффективен при управлении ответом задания обмена сообщениями очереди с помощью команд очереди (lpush, rpop и т. Д.). – Bactisme

0

Несколько строк GoLang могут тривиально создавать HTTP-сервер. Использование структуры Echo на вершине этого приведет к быстрому взаимодействию с многолетним процессом.

Оттуда PHP может отправлять запросы.

При переносе приложения веб-клиенты могут напрямую обращаться к серверу, используя CORS. Пример: www.site.com получать содержание от golang.site.com

Дополнительно: Вебсервер GoLang имеет CGI пакет (FastCGI предложил другие), которые можно использовать для запуска PHP-код из кода GoLang, но сложность преобразования конфигурации Apache может сделать это непрактичным.

В любом случае у вас будет идиоматический сервер, производящий молниеносные ответы.

2

Вы можете начать строить простой сервер REST в Golang, которые возвращают JSON в качестве общего формата следующим образом: http://www.alexedwards.net/blog/golang-response-snippets

В стороне PHP, скажем, запрос к API, вы можете использовать Curl отправить простой запрос сервер обработки вызовов REST следующим образом: http://codular.com/curl-with-php

Как вы можете простой API-интерфейсы REST в Golang, которые возвращают некоторые данные в формате JSON, что позволяет использовать практически из современных языков программирования общаться и совместимость с вашим REST API-интерфейсы, такие как JavaScript, , Java, Python, Ruby и так далее.