2016-05-30 103 views
2

Ich würde gerne anfangen, Golang zu verwenden. Um das zu tun, gab ich mir ein kleines Projekt. Ich habe bereits eine Website (klassische PHP, MySQL, CSS, HTML).Kommunikation zwischen PHP & Golang

Ich würde gerne ein Training in ein Golang-Skript exportieren. (wie Pi berechnen).

Eigentlich, wenn ich auf eine Schaltfläche klicke, ein PHP Algo die Arbeit machen. Gibt es eine Best Practice, um PHP und Golang zu verwenden?

Ich habe über Socket nachgedacht. (Server-Golang, Client-PHP) oder eine Datenbank. Aber es wird Ergebnis mit einer Menge SQL-Anfragen.

Ich hoffe, dass Sie mir helfen,

Dank

+1

Es gibt keine Möglichkeit, direkt mit PHP zu sprechen. Die Optionen, die Sie haben, erstellen eine Golang-API, die irgendwo ausgeführt wird und dann entweder PHP Curl oder Javascript AJAX verwendet, um die Informationen zu erhalten. –

Antwort

4

Die beste Lösung ist die Steckdose zu verwenden. Alle anderen "Muster" würden einen Sockel verwenden. Zum Beispiel können Sie ZMQ-Prozesse interagieren. ZMQ gibt Ihnen Zugang zu den Low-Level-Sockets auf einem hohen (Buchse auf Steroiden).

Verwendung der Datenbank - wird nicht als eine asynchrone Lösung betrachtet, aber es kann auch verwendet werden .... Es sollte auf den verfügbaren Ressourcen und Aufgaben basieren.

ZMQ PHP binding

ZMQ Go Binding

P. S. Ich hatte eine Erfahrung mit php + Erlang. Also meine Lösung - universell.

+0

Ganz in der Nähe des Warteschlangenmusters befinden sich "In-Memory-Datenbanken/In-Memory-Caches" wie Memcache oder Redis. Die letzte, redis, ist sehr effizient bei der Verwaltung von Warteschlangen-Messaging-Job-Response über Warteschlangenbefehle (lpush, rpop usw.). – Bactisme

0

Einige Zeilen von GoLang können trivialerweise einen HTTP-Server erstellen. Die Verwendung des Echo-Frameworks ermöglicht eine schnelle Interaktion mit einem langjährigen Prozess.

Von dort kann PHP Anfragen senden.

Während Sie Ihre Anwendung portieren, können die Web-Clients den Server direkt mit CORS erreichen. Ex: www.site.com bekommen Inhalte von golang.site.com

Optional: Der golang Webserver verfügt über ein CGI-Paket (FastCGI von anderen angeboten werden), die Sie PHP-Code verwenden könnte laufen von GoLang-Code, aber die Mühe der Konvertierung Ihrer Apache-Konfiguration kann dies unpraktisch machen.

In beiden Fällen haben Sie einen idiomatischen Server, der blitzschnelle Antworten liefert.

2

Sie können den Aufbau einer einfachen REST-Server in Golang, die JSON zurückgeben als allgemeines Format wie folgt starten: http://www.alexedwards.net/blog/golang-response-snippets

In der PHP-Seite, APIs Anfrage sagen, können Sie cURL verwenden, um eine einfache Anfrage zu senden REST-Server rufen Sie wie folgt vor: http://codular.com/curl-with-php

wie Sie ein einfaches REST-APIs in Golang können, die einige JSON-Daten zurückgeben, ermöglicht es Sie fast dem modernen Programmiersprachen zu verwenden, um die Kommunikation und Interoperabilität macht mit Ihrem REST-APIs wie Javascript , Java, Python, Ruby und so weiter.