其實,我不確定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庫。
這里是一些參考資源:
新聞熱點
疑難解答