就在Google高調發布業界普遍認為針對Facebook的Buzz的同時,Facebook則低調發布了XHP項目。這是一個多月以來,繼HipHop之後,Facebook推出的又一重要PHP改進項目。看來,在社會化網絡市場地位穩固之後,Facebook也開始大力回饋技術社區,在口碑和攢人品方面與Google展開競爭了。
根據Github上項目的文檔維基,XHP是一個PHP擴展,通過它,開發人員可以直接在PHP代碼中內嵌XML文檔片段,作為合法的PHP表達式。這樣,PHP就成為一個更為嚴格的模板引擎,大大簡化了實現可重用組件的工作。
比如這樣的簡單代碼示例︰
?php
$href = 'http://www.facebook.com';
echo a href={$href}Facebook/a
注意第三行代碼中的語法,其中echo後的不是字符串。
項目負責人Facebook工程師Marcel Laverdet則表示,XHP不僅使前端代碼更容易理解,還有助于防止跨站腳本攻擊。事實上,Facebook Lite網站(快速簡化版本的Facebook)就是完全用XHP寫成的。
和上次HipHop發布一樣,PHP之父Rasmus Lerdorf也很快做出回應(英文原文鏈接),他說︰
XHP其實就是支持內嵌XML,這在VB中稱為XML元素文本。它增加了一個額外的分析步驟,將內嵌的XML元素映射為PHP類。類的語法有些奇怪。至少對我而言,其中主要有意思的地方,是PHP現在理解要輸出的XML了,就可以以上下文敏感的方式進行過濾。
Lerdorf也指出,XHP存在明顯的性能問題,它的XML運行時驗證顯然會增加開銷。為此,Facebook不得不使用APC[Alternative PHP Cache]再加上HipHop。
對此,Marcel Laverdet回復︰
性能的確是XHP最引人關注的問題。確實,XHP比原始的字符串拼接要慢2到3倍,但是這對大多數程序都不是問題。另外,雖然APC肯定是必需的(大多數網站都是如此),HipHop則不然。其實Lite網站只是到最近才開始切換到HipHop,之前也表現很不錯。在實際應用中,XHP對性能影響並不是很大。在簡潔和性能之間的權衡上,XHP做得不錯。
此外,Wikispaces的創始人James Byers也寫到︰
對我來說,XHP比HipHop有意思得多。它將完全改變模板還是只用PHP的爭論。對此我很高興。PHP應該繼續這樣改進。
Tipjoy的聯合創始人,現在也在Facebook任工程師的Ivan Kirigin也對XHP贊賞有加︰
XHP是我在Facebook唯一使用的PHP工具,比其他語言類似的東西都好。記號完美代表了對象,不用折騰面向對象編程那些爛東西了,這可是非常罕見的寶貝。
【推薦資源】
GitHub上的XHP項目
項目文檔維基

