尋覓理想的 PHP 編輯器
阿恆
你使用甚麼軟件來編輯 PHP 源碼、除錯、和管理專案?你對它滿意嗎?J Armando Jeronymo 最近因為某些原因不再使用本來的編輯器,於是展開了一趟 PHP / HTML / CSS / JavaScript 編輯器尋覓之旅,他在 How I Chose My Programming Editor 中講述了他怎樣訂立評審標準、遴選經過、與及他心目中的「完美」編輯器。
Jeronymo 首先從 Linux, Java, Windows 和 XUL 平台選出超過三十個比較多人使用的編輯器,這些「候選佳麗」必須在 2010 年 1 月 1 日後最少發佈過一個穩定版本:
- Arachnophilia
- Bluefish
- Bluegriffon
- CoffeeCup HTML Editor
- Dreamweaver
- Eclipse PDT
- Emacs
- Expression Web
- Geany
- gedit
- HTML-Kit
- jEdit
- Kate
- KDevelop
- Komodo Edit
- KWrite
- Netbeans
- Notepad++
- Notepad2
- OpenBEXI
- PHPEdit
- PHPEd Pro
- PHPStorm
- Programmer’s Notepad
- PSPad
- RadPHP
- Scite
- SeaMonkey
- Vim
- WebDev
- WebMatrix
- Zend Studio
有興趣的話請自行到 Google 搜尋它們的詳細資料。
第一回合:自動完成和語法高亮
Jeronymo 根據他的使用習慣,認為好的編輯器必須能夠提供明智的建議和具備語法高亮功能,提供的建議至少包括:自動完成、參數提示、和自動關閉括號。「自動完成」是指編輯器嘗試猜測並能夠自動完成 HTML 標籤、CSS 屬性、和 PHP 及 JavaScript 的類別、函式、和變量名稱。「參數提示」是指向開發員提供可能的 HTML 屬性和值、CSS 屬性值、及 PHP 和 JavaScript 函式的參數的能力。「自動關閉括號」是指自動關閉 HTML 標籤、小括號、大括號等的能力。「語法高亮」就是能夠在編輯器的屏幕上給不同的程式元素例如變量、函式名稱、標籤等塗上不同的顏色,若能夠自動找到小括號、方括號、大括號等的匹配字符,將會是非常有用的功能。
第一項測試就是哪些「候選佳麗」在基本的安裝模式下已經提供這些功能,至少,能夠簡單輕易地安裝一、兩個模塊便可以做到。這一關把以下三個編輯器踢了出局:Emacs 需要一些難以安裝的檔案;OpenBEXI 看來是一個很有趣的網站開發概念,但它卻不是一個真正的源碼編輯器;WebDev 似乎沒有免費的測試版本。其餘的每個軟件進行 HTML4/5 標籤、CSS 屬性、PHP 和 JavaScript 函式和變量等的語法高亮、自動提示和自動完成功能的測試。下面就是一個典型的 PHP 測式檔案:
|
|
Jeronymo 共有 13 項測試項目,包括 PHP 和式自動完成,PHP 變量自動完成,JavaScript 函式自動完成等,有該項功能的話便得一分,最後計算每一個編輯器的分數。最普遍得到支援的是語法高亮、定界符 (delimiter) 的本地化、和自動關閉 HTML 標籤。最少得到支援的是 JavaScript 函式的自動完成和提示、及 JavaScript 變量的自動完成。平均的得分是 4.8,即 38%,也就是說,中游的軟件在 13 項功能中只能支援不到 5 項功能,29 個軟件中有 13 個表現超越平均值。
跟著 Jeronymo 挑選前 25% 的軟件進行進一步的評估,也就是以下八個 (按字母順序排列):Dreamweaver, Geany, Komodo Edit, Netbeans, Nusphere PHPEd, PHPStorm, Programmer’s Notepad, 及 WebMatrix。有趣而又值得注意的是,這裏有四個免費和四個收費的軟件,四個收費的軟件都只能在 Windows 上運行,其餘四個則是跨平台的。
挑選這八個軟件並非表示它們比其餘的優勝,只代表它們比其它軟件滿足更多 Jeronymo 所要求的功能。如果源碼重構對你來說是很優先的功能,你應該得到不同的名單。
第二回合:其他功能 (包括所有你希望見到的功能)
第二回合測試包括以下功能:源碼片段/模板,源碼折疊,書籤,自動源碼格式化,支援整合除錯,支援巨集,是否有源碼重構工具,支援專案管理,支援版本控制,內建 FTP,整合的命令行控制台,支援插件,支援開發架構,個人化編輯器,啟動時間是否可以接受,是否有文檔及其完整性,和其他幾項功能。同樣地,只會重點測試基本安裝版本或簡單輕易便能安裝的插件,每一項測試都是都按「有/無」得分,下面是每一個軟件的成績:
抉擇
雖然上面所有的 PHP 編輯工具都有強大的功能,Jeronymo 最欣賞的還是 Geany 和 NetBeans。 Geany 功能較少但身形比較輕便,它也可以透過越來越多社區維護的插件列擴展功能。 NetBeans 功能強大,但有一個陡峭的學習曲線,它雖然免費和開放源碼,卻是私下地維護持。無論如何,在三年左右的時間,相信將會有新的整合式開發環境面世,部分在座的軟件也將停止發展,屆時將是另一次檢討時間。