PHP和Java EE后端
我可以将Struts用作Web应用程序的后端,而PHP用作Web应用程序的前端吗?如果是,可能会有什么影响。
解决方案
回答
后端和前端是什么意思?
如果我们打算在网站的管理端使用Java,而在公众可以看到的部分使用PHP,那么没有什么可以阻止。
这意味着我们将必须维护两种不同语言的应用程序。
回答
我认为意思是我们想使用PHP作为模板语言,并使用结构作为中间件(动作等)。
我想答案是肯定的,不是在结构会话和PHP之间没有某种桥梁。
如果我们说要在structs动作中将java中的x更改为3,就不能仅仅使用<?php echo x?>或者其他方法来获取值,我们将需要以某种方式来回传递信息。
我想可以,但是提交可以。
虽然不推荐。
回答
我对Java不太了解,但是我记得前一段时间遇到过Quercus。它是PHP代码的100%Java解释器。
所以是的,我们可以在Java应用程序上安装PHP模板。更新:有关更多信息,请参见Quercus:Java中的PHP。
回答
正如Jordi所提到的,首先想到的是Quercus(来自Resin servlet引擎的制造商)。它是PHP运行时的Java实现,并且据称允许我们直接从PHP访问Java对象(我的一部分说"是,最后")。
另一方面,尽管我一直渴望以这种方式尝试一个项目,但除非确实有理由在代码级进行集成,否则我可能会保持Java EE和PHP之间的分离。
相反,为什么不尝试SOA方法,即PHP"前端"通过HTTP通过定义的REST或者SOAP API(在此处对REST进行强烈投票)调用Struts应用程序。
http://mydomain.com/rest/this-is-a-method-call?parameter1=foo
我们可以使用Struts来构建整个"后端"模型,仅处理业务逻辑和数据,而完全忽略表示。在使用这些URL公开API时,基本上就是在构建REST API(如果以后可能需要其他客户端应用程序提供对后端的更大访问权限,则可能会派上用场)。
PHP应用程序可以单独构建(相当简单),调用REST API(也许使用Curl),就像调用数据库或者某些本地PHP类库一样。
无论如何,这就是我要做的。但是,如果我们确实使用Quercus,请发布它的运行方式。