首页 > 我想请教下各位前辈,前端用PHP,后端用Java,怎么进行交互额?

我想请教下各位前辈,前端用PHP,后端用Java,怎么进行交互额?

我想请教下各位前辈,前端用PHP,后端用Java,怎么进行交互额?
AJAX的话可以用JSON
可是如果只是页面跳转的话,用啥额,PHP不可能懂得SpringMVC吧


前端用PHP,后端用java的话,由java提供相关的接口就可以了啊,用curl请求接口信息。


1、可以使用http的方式进行RPC(这也是最基础的方式啦)
2、利用yac等RPC框架(虽然也是基于HTTP的,但是反序列化和序列化会更爽)。
3、使用RabbitMQ等队列。
4、socket。。。。。。(这个比较底层,如果你对连接有特殊需求的话,建议自定义化,当然会复杂以及难度变大)


前端php。。。真够纠结的,谁这样设计的。。2个语言随便哪个都行了。
交互方式多了,http、socket、rpc,随便选吧


这种情况下,用 Hprose 是个不错的选择。

关于 REST 介绍的文章已经很多了,这里只对 RPC 部分做一个介绍:

RPC(远程过程调用)是什么

远程过程调用发展历程

早期的 RPC

XML-RPC,SOAP,WebService

PHPRPC

Hessian

JSON-RPC

Microsoft WCF,WebAPI

ZeroC Ice,Thrift,GRPC

Hprose


来点实用的:https://github.com/guzzle/guzzle


后端的话 直接请求连接嘛 , 如果跳转需要带参数就ajax值写入连接里面


很有意思,我曾经也是老大让我做过这个调研,当时还用php与java结合做了一个项目。看到这里前面的回答,大部分都是说通过RESTfull API或json去调用java处理业务逻辑的结果,而我想题主可能更需要的是QuercusPHP/Java BridgeSOAP这三种技术的一种。

Quercus是一个完全以java实现的PHP5引擎,可以让PHP程序在JVM上执行,前端php代码就像引入java包一样,然后就可以直接new一个java对象来使用。这也是我在调研项目中选用的。

PHP/Java Bridge 本质上也是通过XML去前后端交互数据的,但是它实现的PJB协议不需要我们自己去解析XML获取数据,php-java-bridge帮我们做好了数据类型映射这类功能。

SOAP具有与程序语言、平台和硬件无关的特性,不仅可以引用于php和java之间,但是据说效率不怎么高。

实际测试结果,个人真觉得没必要把一个项目用这种实现方法,一个字,zuo。

有了上面这些信息,我相信谷歌可以告诉你更多。


目前我公司就是这种架构,但是也不是说让php只负责前端,跟淘宝UED的那篇文章,多少有点出入。php当然可以只负责前端来调用java数据接口。但是也可以去负责一些php擅长的逻辑。

java负责大数据的处理之类的。从业务上与PHP分离开。

楼主的问题是如何交互,@seanlook 说的几种方式,比较完整了。大致就是webservice、RPC,soap这几种方式。用java虚拟机跑php,我觉得要比rpc调用会坑很多。

我们公司是用的RPC,但是是自己实现的RPC框架,数据转为二进制的,使用google 的 protobuffer。

rpc调用也很方便。几行代码就搞定了。因为数据传输使用二进制,所以效率上是比soap之类的快。应该是最优的选择了。希望能帮到题主。


更新!

我去,没仔细看楼主的问题,原来只是要交互啊,最简单的,如果你用springmvc,那么你直接把action作为接口暴露出来,php发起http请求调用java的接口就哦了~!

java只暴露api,然后php拿到json数据,渲染页面,页面跳转放到php呢?


突然想起来之前看到过淘宝ued的一篇文:

前后端分离

主要思想也就是酱紫吧:


前端:负责View和Controller层。
后端:只负责Model层,业务处理/数据等。

文中前端是:node+js+html
你换成:php+js+html

然后看到楼下说的rpc,也不是很懂,就查了一下,可以看这个回答理解一下:

什么是RPC

对应的就可以用php的rpc框架了,比如yar,当然不用也是可以的吧


php不是用来做后端程序的吗?


有必要用java嘛,PHP是世界上最好的语言,并且PHPNG 也快出来了


基本就是 http+json.当然也可以使用现成的rpc框架

【热门文章】
【热门文章】