2008年1月25日

Quercus - 當PHP5遇見J2EE

Quercus is Caucho Technology's 100% Java implementation of PHP 5 released under the Open Source GPL license. Quercus comes with many PHP modules and extensions like PDF, PDO, MySQL, and JSON. Quercus allows for tight integration of Java services with PHP scripts, so using PHP with JMS or Grails is a quick and painless endeavor.

使用Quercus真的很簡單,下載Quercus已打包好的war檔,參考一下裡面附得jar檔及web.xml設定。主要是設定*.php的url交由Quercus的Servlet處理,完成後在WebContent下放置的*.php程式就可以被執行。

UTF-8中文可能會遇到亂碼問題,例如從XML讀取或是接收GET/POST的資料,簡單的解法就是用utf8_encode($src_var)即可。或許可以用php.ini的配置解決此問題?(再等解決辦法了)

最近需要開發一個系統基礎設定的模組,環境是JBoss/Tomcat,只是提供一個XML的Web設定介面,雖然是個小程式,但用JSP+Servlet寫起來還是挺麻煩的,使用PHP5在很短的時間、用很少行數的程式碼,就完成這項功能。

在J2EE環境用PHP5快速開發使用介面,是個不錯的選擇,複雜的元件設計可以交給Java,搭配PHP簡易、開發快速的優點,可以加速專案的開發。Quercus目前對PHP相容module的實作還是有限的,不過可以方便地存取Java的class,也很容易自己開發給PHP用的function

目前正在研究如何將Ruby、Python、PHP用以輔助J2EE程式開發,帶來的好處可以想像得到,缺點也尚待評估,若有興趣的朋友就一起交流吧!

3 則留言:

  1. 我用resin3.1.8运行php的时候往mysql5.1.3的数据库写入UTF-8的中文后读取出来是乱码!我弄了三天了。。。唉

    回覆刪除
  2. 官方的文件有提到一些unicode的設定,可以先試試看。若仍沒有效,治標的方法就是先用utf8_decode()及utf8_encode()去轉換REQUEST/POST及DB取出的資料。不過每次都做編碼轉換並不太理想,所以我後來已經改用Groovy取代了。

    回覆刪除
  3. 官方的文件有提到一些unicode的設定,可以先試試看。若仍沒有效,治標的方法就是先用utf8_decode()及utf8_encode()去轉換REQUEST/POST及DB取出的資料。不過每次都做編碼轉換並不太理想,所以我後來已經改用Groovy取代了。

    回覆刪除

lyhcode by lyhcode
歡迎轉載,請務必註明出處!