使用Java作为后端,使用PHP作为前端

时间:2012-08-24 19:23:54

标签: java php

关于这个架构是一个好主意还是坏主意,已经有一些关于SO讨论的帖子。由于我们公司内部的许多原因,包括现有的编程人才,我们决定使用Java作为后端,使用PHP作为前端。我们的目标就像......

Java - 模型/控制器

PHP - 视图

我们正在努力构建Glassfish和Apache之间交互的原型。我们仍在努力的一件事是当用户访问http://domain.com/login.html并登录时,该登录将被发送到存在于/login.java之类的Glassfish控制器。我们可以做到这一点没问题,麻烦的是让视图在该URL上呈现。

有没有人使用PHP或任何其他技术做到这一点?

3 个答案:

答案 0 :(得分:5)

您是否考虑过在java中设置soap / rest服务器并让PHP与之对话?我想这比你想要实现的要简单得多。

答案 1 :(得分:2)

我很抱歉提出这个问题,但似乎只要坚持使用其中一种语言就会变得更加简单。如果您使用PHP在视图中添加更多逻辑,那么可能值得一看Velocity。它允许您访问和创建变量,遍历列表,使用条件,定义宏,进行方法调用等。这似乎可以使事情更清晰。但是,尝试尽可能多地保留模板中的逻辑通常是个好主意。

如果您想使用PHP,因为这是必需的,我建议您看一下使用Web服务进行通信。看一下Googles GSON库。它是用于将JSON对象映射到模型的非常好的工具(在Java方面)(反之亦然)。

在您的前端,也可能值得一看Backbone。它是一个工具,可以简化模型对象并将事件绑定到它们,或者将它们直接绑定到字段等。

答案 2 :(得分:1)

我已经在使用Java 服务层和PHP 客户端层技术堆栈的两家公司获得了第一手经验,尽管它并未专门使用。为了清楚地分离这些层,我们构建了一个定义良好的JSON REST API,因此每个层都有一个可以代码编写的契约。

Java层在持久层之间使用SpringMVC生成具有明确定义的路由(即URL结构)的JSON视图,以便PHP层为{{1}资源。

关于 login 问题,实际上有两个Java服务,一个专门用于登录/注销,另一个用于常规后端。

访问我认为是GET/PUT/POST/DELETE文件的/login时。向“登录”服务提交登录.php会导致添加会话cookie,但也会添加加密的“用户ID”cookie。然后,可以使用加密的cookie来保护对产品的Java Service层的访问。从PHP到Java的每个REST请求都可以访问cookie,然后Java层可以解密“用户ID”并响应PHP REST调用(如果它有效)。然后,Java层可以访问真实用户ID,以便从持久存储中返回特定于用户的数据。