Quercus是Java环境中PHP的可行替代品吗?

2022-09-04 02:57:32

对于任何偶然发现这个问题的人,他们不知道Quercus是什么 - 它是用Java完成的PHP的实现。

对于我目前正在从事的项目,我们通过cgi在servlet上提供php页面(我知道它很笨拙,但这是支持遗留代码的要求)。我很高兴发现Quercus项目,因为它看起来像是将我们的项目迁移到更纯粹的Java环境的有希望的道路。

我有几个关于栎树的问题:

  • 您是否在运输产品中使用过栎树?
  • 支持多少 php API?
  • 你有什么缺点?
  • 您是否能够使其与Jetty合作?你听说过它与Jetty合作吗?(我无法弄清楚)

答案 1

我已经用WordPress测试了它,性能几乎是常规Apache / PHP下默认WordPress安装的两倍。这仍然不是那么好。

我们确实注意到,虽然Quercus支持PHP中的curl命令,但它并不支持所有的curl选项。所以自动插件下载不起作用。这没什么大不了的,您可以随时下载插件并手动安装它们。但这是一个危险信号,因为我们不知道还有什么可以工作。这也意味着Facebook的PHP库将无法正常工作(最有可能)。

如果您执行大量数据库连接和调用,则应该会看到该领域的性能大大提高,因为将使用数据库连接池。

如果你正在编写代码,我会说这是一个非常可行的选择。支持足够的PHP,如果您发现不起作用的内容,则可以使用支持的其他PHP命令,或者仅使用Java命令。


答案 2

我做了一些工作来评估Quercus,它看起来很有前途,但没有与我正在从事的项目一起工作,因为它是基于Symfony的,并且Symfony的反射性质没有得到Quercus的处理。

我确实尝试过让一些开源PHP项目使用它,并发现它有一个相当完整的基于PHP5的API。

您应该能够让它与Jetty一起使用。我能够让它与Tomcat一起工作。

你真的可以把它看作是Java应用程序中JSP的替代品。它的工作方式与 JSP 的工作方式相似,因为您将 PHP 编译为 Java 代码,就像将 JSP 编译为 Java 代码一样。

我相信使用Jetty的最大缺点是无法预编译PHP代码。

不过,即使您没有将PHP与Java混合在一起,也有相当多的优点。如果将两者混合在一起,您将拥有更多优势。


推荐