Phalanger 簡介
Phalanger 是 PHP 語言編譯器,也是針對 .NET 的 PHP 執行環境。可將 PHP 專案編譯為 .NET 位元碼,在 Windows 用 IIS 或 Linux 用 Mono+Apache 作為 ASP.NET 應用執行。不僅是編譯既有 PHP 應用到 .NET,更可建構結合 .NET 與 PHP 的解決方案:PHP 程式可直接使用 .NET 類別,.NET 程式 (如 C#) 也可動態呼叫 PHP 腳本或使用 PHP 實作的函數與類別。
發展歷程
- 2003 年布拉格查爾斯大學專案創建
- 2006 年 CodePlex 開源發布 2.0 版
- 微軟曾支援,後開發者加入微軟從事 DLR 工作
- 2008 年與 Jadu 合作恢復活動,為 PHP CMS 建構 .NET 版
- 2010 年起 DEVSENSE 提供資金與商業支援
- 最新 Phalanger 2.1 提升相容性、利用 DLR 優化、提供 PHP 與 C#/F#/VB 互操作性
Phalanger 組件
- 編譯器:PHP 原始碼編譯為 .NET 組件,使用 .NET JIT 執行
- 執行環境與類庫:實作陣列等 PHP 特性,包含 I/O、正則、標準庫的 .NET 實作
- 原生擴充:32 位 Windows 可透過橋接使用現有 PHP 4 擴充
- 受控擴充:透過包裝 .NET 功能重新實作 PHP 擴充,效能佳。內建 SPL、JSON、SimpleXML、MySQL、MS SQL 提供者,DEVSENSE 提供 Memcached、圖像、cURL 等附加擴充
- Visual Studio 整合:支援語法高亮、智能提示、除錯
三大使用案例
- 高效運行 PHP 應用:編譯而非解譯,ASP.NET 架構在 Windows 提供額外效能優勢
- 整合 WordPress 與 ASP.NET:編譯後 PHP 代碼可呼叫所有 .NET 程式庫,共用使用者資料庫等資料
- 從 ASP.NET 呼叫 PHP:PHP 彈性適合腳本或表現層,可在 .NET 開發應用並用 PHP 作為腳本語言或視圖引擎
案例一:高效運行 PHP 應用
Phalanger 編譯流程:PHP 原始碼 → .NET IL (中間語言) → PHP 核心庫 + DLR 執行 → .NET JIT 編譯為本地碼。基準測試顯示 Phalanger 編譯 WordPress 在 Windows 效能優於 FastCGI+標準 PHP,略優於 WinCache+PHP。最新版使用 DLR 進一步優化。
