Come potrei consentire a un front-end PHP di comunicare con un back-end scritto in Go (o in qualsiasi altra combinazione di lingue)?

2

Mi piace PHP. Non è eccessivamente complesso ottenere quello che vuoi, puoi scrivere direttamente HTML all'interno di esso, e suppongo di esserci abituato. Mi piace anche Go, che lo ha appena scoperto mentre cercava qualcosa per scrivere il back-end di un'app Web in quanto non era Node.js (non può rispettare i callback ovunque).

Mi piacerebbe essere in grado di fare la maggior parte della generazione di pagine in PHP, perché è proprio quello che mi piace fare per la generazione di pagine, ma voglio che il pesante sollevamento sul retro sia fatto da Go. Il "motore" di back-end deve essere in grado di fare cose come i lavori programmati dall'utente, ma in seguito estendersi a un endpoint del servizio Web e altro, qualcosa che mi sentirei più a mio agio in un linguaggio compilato e tipizzato staticamente come come Vai.

L'unico modo in cui posso pensare di far funzionare tutto questo è avere tutto il PHP su un server HTTP e fare chiamate REST o SOAP al motore scritto in Go. È questo l'unico modo per consentire l'interoperabilità tra le due lingue o esiste un altro modo?

    
posta Adam 09.10.2014 - 12:19
fonte

2 risposte

1

Gli zoccoli sono un modo perfettamente accettabile per fare interop della lingua. Il protocollo che usi per passare i messaggi tra due processi diversi non ha molta importanza se pensi di esporre solo uno di loro al resto del mondo. Se il piano a lungo termine è renderli entrambi disponibili, allora andare con un protocollo standard come HTTP con JSON è la soluzione giusta.

L'interfaccia FFI (Foreign Function Interface) è anche una potenziale soluzione, ma non so molto su PHP e sul suo supporto FFI per dire se questo è migliore o peggiore rispetto ai socket semplici.

    
risposta data 09.10.2014 - 14:49
fonte
0

PHP è un linguaggio di programmazione lato server. Se si desidera comunicare con altre applicazioni, è necessario implementare i servizi Web nel proprio Go e fare in modo che PHP esegua richieste a tali servizi Web. Ci sono vari modi già implementati nella maggior parte dei framework stabiliti (Laravel, Phalcon, Symfony, Zend, CodeIgniter, CakePHP e così via - la lista è davvero enorme). Il modo per ottenere questo risultato senza un framework PHP dietro il tuo progetto, è tramite chiamate cURL .

Tuttavia, il flusso di lavoro di questo è il seguente: l'utente dovrà avviare un'azione facendo una richiesta al componente lato server PHP, che a sua volta farà una richiesta CURL al back-end Go e poi servirà l'appropriato risposta all'utente. Fondamentalmente è la stessa cosa che l'utente fa una richiesta direttamente al back-end di Go, tranne che puoi eseguire l'elaborazione intermedia nel componente PHP, sulle tue richieste e risposte dal backend Go.

    
risposta data 10.10.2014 - 10:00
fonte

Leggi altre domande sui tag