其实,我不确定Quercus是否可以被认定为一门JVM语言;其次Quercus这个东东分开源版与商业版,开源版只能解释执行、而商业版能编译成Java字节码。

但我知道国内,阿里巴巴很早就在使用它,当然,他主要是把它作为一个前端页面的模版引擎,提供给用户自定义商铺样式时数据调用。

这也是一种典型的使用场景。

为什么PHP(包括流行的很多语言)不被接受为一种企业级的开发语言,个人以为正是我们用的最顺手的“动态数据类型”,企业级的应用需要数据有很强的可靠性、一致性,Java这样的强类型、编译性语言,能从开发测试阶段提供尽可能高的错误检出率,而很多人在用PHP开发的阶段就屏蔽/不关注系统错误提示,只要一个功能能走通就ok。

而Java发展这么多年,已经有了足够甚至说太多的各种框架、库,可用于企业级开发,在JVM环境使用PHP,可以提高业务前端的开发效率,而底层使用Java的这些框架、库,确保数据的一致性、可靠性,并且可以使用Java很多技术和特性。

这个东东,我关注了很久,但无奈小团队,没有环境来完成相关实践的检验。

以下是翻译的其官方站点上的介绍,网上有很多翻译的,但可能没有遵循原文的逻辑:

Quercus是Caucho公司纯采用Java开发的一个PHP5引擎,基于开源授权协议GPL发布。Quercus自带很多个PHP模块和扩展如PDF、PDO、MySQL和JSON。Quercus使得可以将Java服务与PHP程序紧密集成,不费吹灰之力在PHP脚本中调用Java服务如JMS、Grails。

通过Quercus,PHP应用程序自动具备了使用了Java应用服务器的优秀特性,如连接池、集群化会话(clustered sessions)等。

Quercus实现了PHP 5语言标准,并且PHP扩展的开发不断完成,包括APC, iconv, GD, gettext, JSON, MySQL, Oracle, PDF, and Postgres。很多流行的PHP程序在Quercus中可以和在PHP解释器运行的只好不差。这是一份不断增加的PHP软件清单:DokuWiki, Drupal, Gallery2, Joomla, Mambo, Mantis, MediaWiki, Phorum, phpBB, phpMyAdmin, PHP-Nuke, Wordpress and XOOPS。

Quercus代表在Web应用与Web服务领域,Java与PHP相互整合的一种新的混合式思路。PHP应用开发过程中,可以选择使用Java的库及技术如JMS, EJB, SOA 框架, Hibernate, 与 Spring。这可能带来一些革新性的可能性,因为:

1) PHP代码被解释/编译成Java;

2)Quercus和它的库用Java编写;

这种架构使得PHP应用程序与Java库直接进行“对话”,因为都在同一个程序层(译注:这里是针对php的一个扩展php bridge)。为促进这种新的Java/PHP架构,Quercus提供了API及接口将Java库暴露给PHP使用。

官方提供了Quercus .war文件可以在Java应用服务器上运行,这样,它其实可以在Resin之外运行(译注:Caucho公司主要是提供Resin服务器的),该文件包含Quercus解释器与PHP库。

这里是一些参考资源:

比较偏门的JVM语言Quercus - PHP on JVM的更多相关文章

  1. 对QT的理解——能在公司里不做Java,不做很偏门的产品,不使用偏门的语言,还有钱挣,要有感恩的心

    我的理解: QT做应用软件可以很强大,界面足够漂亮(最有意思的是QSS,让我刮目相看),应该是足够了.同时QT也提供了源码,不过超级复杂,难以理解,所以还是无法深入底层.另外它提供了一个额外的好处,就 ...

  2. 谈谈html中一些比较"偏门"的知识(map&area;iframe;label)

    说明:这里所说的"偏门"只是相对于本人而言,记录在此,加深印象.也希望有需要的朋友能获得些许收获! 1.空元素(void):没有内容的元素. 常见的有:<br>,< ...

  3. [转载] 详述三种现代JVM语言--Groovy,Scala和Clojure

    转载自http://www.tuicool.com/articles/jYzuAv和http://www.importnew.com/1537.html 在我与Martin Fowler曾经合作呈现的 ...

  4. element-项目用到偏门方法~

    开发项目的时候,组件库的使用有时会为我们节省开发时间,提高开发效率,但组件库样式有时与我们的设计图出入很大,还有的方法也很偏门,主要官方文档有时候对于一些方法和属性介绍的也比较少,以下是我在工作中总结 ...

  5. 谈谈CSS中一些比较"偏门"的小知识

    前面我写了:谈谈html中一些比较"偏门"的知识,现在这篇(主要)想谈谈个人所见的CSS一些小知识点,加深印象:同时也希望有需要的人能有收获! 1.常见的浏览器内核: 以IE为代表 ...

  6. JVM笔记 -- Java跨平台和JVM跨语言

    学习JVM的重要性 从上层应用程序到底层操作系统,到底有哪些东西? 平时开发的应用程序主要基于各种框架,譬如Spring,SpringMVC,Mybatis,而各种框架又是基于Java API来实现的 ...

  7. 04.从0实现一个JVM语言系列之语义分析器-Semantic

    从0实现JVM语言之语义分析-Semantic 源码github, 如果这个系列文章对您有帮助, 希望获得您的一个star 本节相关语义分析package地址 致亲爱的读者: 个人的文字组织和写文章的 ...

  8. 03.从0实现一个JVM语言系列之语法分析器-Parser-03月01日更新

    从0实现JVM语言之语法分析器-Parser 相较于之前有较大更新, 老朋友们可以复盘或者针对bug留言, 我会看到之后答复您! 源码github仓库, 如果这个系列文章对你有帮助, 希望获得你的一个 ...

  9. 02.从0实现一个JVM语言之词法分析器-Lexer-03月02日更新

    从0实现JVM语言之词法分析器-Lexer 本次有较大幅度更新, 老读者如果对前面的一些bug, 错误有疑问可以复盘或者留言. 源码github仓库, 如果这个系列文章对你有帮助, 希望获得你的一个s ...

随机推荐

  1. JS表单设置值

    //表单设置值 $.fn.setForm = function(jsonValue) { var obj = this; $.each(jsonValue, function (name, ival) ...

  2. 学习之路三十六:SQL知识总结 - [游标||字符串分割]

    好久没有写文章了,今天把前不久项目用到的SQL知识总结一下. 一丶字符串分割 SQL内置函数中是没有Split分割函数的,所以需要自己去实现,不多说,上代码: )) RETURNS @result T ...

  3. 【原】Jqxgrid在Java服务器端分页

    研究这个后台分页一天多,特此写个文章记录备忘 jsp页面中有两个需要注意的地方:一个是source中beforeprocessing,另一个是rendergridrows中数据的获取. 说明:grid ...

  4. volley中网络请求

    首先使用Volley类创建 RequestQueue queue = Volley.newRequestQueue(this);  Making GET Requests final String u ...

  5. C8051 PCA实现红外遥控接收

    这里使用的处理器是C8051F005.红外接收头接处理器引脚,中断方式接收按键数据. 一 PCA介绍 1.1 PCA 可编程计数器阵列(PCA)提供增强的定时器功能,与标准8051计数器/定时器相比, ...

  6. QTP对象管理

    QTP对象库管理 - 动态绑定对象库文件:http://blog.csdn.net/testing_is_ ... le/details/20569843 用ObjectRepositoryUtil动 ...

  7. [Z] 关于c++ typename的另一种用法

    在看c++ primer的时候见到了一下这种用法: typedef typename std::vector<int>::size_type size_type; 觉得这里面的typena ...

  8. backbone库学习-Events

    backbone库的框架 http://www.cnblogs.com/nuysoft/archive/2012/03/19/2404274.html 我们先从backbone的Events模块开始 ...

  9. Communication - 02.Call U

    App层 从大拇哥Click CallButton开始手机便已明白,主人这是要打电话.当然,你可以选择直接拨号,也可以通过ContactList,或者从通话记录着手.这些都只是UI的设计不同而已,终归 ...

  10. [转载]AxureRP 7.0部件详解(一)

    本文为Axure RT7.0教程,本章主要介绍menu菜单.table表格.Tree Widget 树部件三个部件,后续将持续更新...... Menu 菜单 常用案例 网站导航菜单部件通常用于母板之 ...