Golang Go语言与PHP最佳交互方式?

Golang Go语言与PHP最佳交互方式?
尝试过 goridge 可每次调用只能通过 string 方式返回 信息太少了 好像是通过指针类型的参数返回 string 的
也尝试过 go 启动服务 以 php 写 fsockopen http 请求方式结合 这种方式也不好

现在我就 exec 或 passthru 启动进程方式结合
它们之间用写文件的方式来交互
go 有什么东西写到文件上
前端 ajax 请求 php 去查看文件
以此来输出日志或 go 进度

14 回复

通过数据库?

更多关于Golang Go语言与PHP最佳交互方式?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html



关键任务用 go 做 比如上万个 api http 请求 php 调用 go 显示进度

go 起一个 gRPC 服务,PHP 去调用就行了

goridge 返回 string,可以是返回一个 json 字符串,你想返回啥就返回啥

*unix 系统有 ipc 通信方法,共享内存、队列等,http 不行也可以换其他打包形式和传输协议。
不过我觉得只是显示个进度,何必还启个 php 服务呢?直接 go 解决了就完事了,太冗余了。


php 占大部分代码 go 只是小部分 服务器 apache
go 开发速度太慢

把 go 程序当 cgi 应用,让 apache 去调用呢?

go 编译一个 c 的 shared library,然后写一个链接到这个库的 php extension

消息队列 数据库 redis

果断上 rpc

rpc 库。

显示进度写成 http 服务,nginx 或者 php 做一次代理

针对Golang(Go语言)与PHP的最佳交互方式,以下是一些专业建议:

  1. API接口通信:PHP作为前端语言,与用户交互并调用Go语言编写的后端API接口进行数据交互。这种方式灵活且易于扩展,适用于大多数Web应用场景。PHP可以使用cURL库或Guzzle等HTTP客户端库来调用Go API。
  2. 共享数据库:PHP和Go可以共享同一个数据库进行数据交互。这种方式简化了数据同步问题,但需注意数据库访问的并发控制和事务管理。PHP和Go都有丰富的数据库访问库,如PDO、MySQLi和GORM等。
  3. 消息队列:对于需要处理大量异步任务的场景,消息队列是一个有效的选择。PHP将任务发送到消息队列中,Go监听并处理这些任务。RabbitMQ、Kafka等消息队列系统均支持PHP和Go的客户端库。
  4. RPC框架:RPC(远程过程调用)框架如gRPC、Thrift等,可以实现跨语言的函数调用和远程过程调用。这种方式适用于需要高效、低延迟的跨语言通信场景。

综上所述,选择哪种交互方式取决于具体的应用场景和需求。在实际应用中,可以根据项目特点、团队技术栈和性能要求来权衡选择。

回到顶部