7種流行PHP集成開發(fā)工具的比較(1)
本文發(fā)掘集成開發(fā)環(huán)境(IDE)的所有用途,并比較 7 種流行的 IDE 的成本和優(yōu)勢。
編寫關(guān)于 PHP 的系列文章讓我更加深刻地了解了 PHP 開發(fā)人員的世界。我和許多 PHP 程序員交談過,最令我驚奇的是只有很少的人使用 IDE。大多數(shù)程序員使用文本編輯器,比如 Microsoft Windows 上的記事本、Emacs 或者 Vim。
我提到的這些文本編輯器(以及我沒提到)都是很不錯的 —— 我不想討論哪個編輯器更好。但是,我要強(qiáng)調(diào)的是不使用文本編輯器會使您對 PHP 代碼有更深的見解。幾乎所有人都將 PHP 項目視為只不過是文件目錄而已(這種看法十分片面)。現(xiàn)在就讓我?guī)M(jìn)入 IDE 的世界,向您展示 IDE 能夠 —— 或者應(yīng)該 —— 給您帶來什么,并向您介紹七個最流行的 IDE。
什么是 IDE?
簡而言之,IDE 為編碼工作提供了一站式服務(wù)。IDE 包括一個編輯器,在此編輯器內(nèi)可以編輯代碼、調(diào)試代碼、在瀏覽器(通常是嵌入式的)中查看代碼和簽入和簽出源碼控制。為了支持這些功能,IDE 擁有一套在基本編輯器(比如記事本或者 Vim)中所找不到的特性。當(dāng)然,您可以通過擴(kuò)展編輯器來實現(xiàn)這些功能,但是 IDE 在一個精簡軟件包中囊括了所有這些功能 —— 并都已預(yù)配置:
項目
IDE 的一個關(guān)鍵特性是它把一個 PHP 應(yīng)用程序看作是一個項目,而不僅僅是一組文件。這個概念 —— 項目 —— 維護(hù)額外的信息,比如源碼控制的配置、用于調(diào)試的數(shù)據(jù)庫設(shè)置,以及某一關(guān)鍵目錄所在位置。
調(diào)試
另一個方便的特性是集成調(diào)試。使用這個功能,可以在編輯器中設(shè)置斷點,當(dāng) PHP 解釋程序執(zhí)行到這個腳本時就會停止。從斷點開始,就可以檢查局部變量的值,在代碼中診斷問題。在代碼中可以使用 echo 語句來檢查值或者也可以使用錯誤日志獲得變量的值。
代碼智能
PHP 是一種非常規(guī)則的編程語言,這意味著它遵循著簡單的模式。這些模式不僅使代碼易于編寫,也使 IDE 在項目中檢查代碼變得很容易。此外,它們可以通過顯示檢查結(jié)果幫助您編寫程序。例如,如果在項目中定義了一個名為 MyClass 的類,在鍵入關(guān)鍵詞 new 時,IDE 會立即提供一個包括 MyClass 作為選項的彈出窗口。當(dāng)使用那種類型的對象時,IDE 就會顯示它的可用方法和實例變量。當(dāng)開始鍵入一個函數(shù)命令時,IDE 就會顯示它的可用參數(shù)。公正地說,這是應(yīng)該使用 IDE 而不是文本編輯器的首要原因。這種代碼智能可以有效減少敲錯類名、方法名和參數(shù)。
類視圖
IDE 中的代碼智能引擎產(chǎn)生的另一個作用是 IDE 可以產(chǎn)生項目的 類視圖。系統(tǒng)不是顯示文件,而是顯示已經(jīng)定義的不同的類,而不管它們所在的文件。當(dāng)單擊類時,編輯器訪問相應(yīng)文件并顯示相應(yīng)類、方法或者實例變量。這在大項目中是一種非常好的導(dǎo)航方法。
多語言支持
這里提到的每種 IDE 不僅支持 PHP 而且支持相關(guān)語言集:JavaScript、Structured Query Language(SQL)、Hypertext Markup Language(HTML)和 Cascading Style Sheets(CSS)。因為 HTML 和 CSS 比較簡單,所以 IDE 對它們的支持是最好的。對于 JavaScript 的支持經(jīng)常會突出語法,但是支持比不支持要好。
源碼控制
這里評價的所有 IDE 都支持一些與源碼控制系統(tǒng)的連接,允許隨著時間維護(hù)項目中的文件版本??梢詷?biāo)記文件的特別版本為發(fā)布版本,這樣在需要撤銷改動的時候就可以恢復(fù)。在團(tuán)隊環(huán)境中使用源碼控制系統(tǒng)是很關(guān)鍵的,即使對于個人使用也很重要。當(dāng)磁盤癱瘓或者客戶突然想要以前的版本而不是現(xiàn)在的版本的時候,一個好的源碼控制系統(tǒng)就可以發(fā)揮作用了。大多數(shù)的 IDE 都支持 Concurrent Version System (CVS) 和 Subversion,它們都是開源控制系統(tǒng)。其中一種 IDE 支持 Perforce —— 一款商業(yè)源碼控制系統(tǒng)。
FTP/SFTP 集成
與源碼控制相關(guān)的一種功能是在服務(wù)器中對于最新的代碼使用 FTP 。這比使用 FTP 客戶機(jī)或者自己打包文件并發(fā)送給服務(wù)器然后再解包要容易許多。
數(shù)據(jù)庫導(dǎo)航
一個非基本但十分有用的特性是數(shù)據(jù)庫導(dǎo)航。使用這個特性,可以瀏覽應(yīng)用程序訪問的數(shù)據(jù)庫、找到表格和字段名并返回查詢結(jié)果。一些系統(tǒng)甚至可以自動寫入一些數(shù)據(jù)庫訪問代碼。
集成 Web 瀏覽器
一些 IDE 支持集成 Web 瀏覽器,可以直接導(dǎo)航到正在使用指定的附加參數(shù)編輯的頁面,這個瀏覽器可以宿主在 IDE 內(nèi),也可以外部調(diào)用。誠實地講,我并不大喜歡集成瀏覽器,因為我不介意在編輯代碼和查看結(jié)果這兩個獨立的應(yīng)用程序之間切換。但是我知道它確實有一定的作用,但您不必一定要使用它。
片段
在所有這些 IDE 中我發(fā)現(xiàn)的最后一個特性是對于整段和定制代碼片段的支持。片段 是完成小任務(wù)(比如在一些輸入中運行常規(guī)表達(dá)式、連接到數(shù)據(jù)庫和查詢數(shù)據(jù)庫)的小部分代碼。
以上總結(jié)了目前從購買的或者開源的 IDE 中可以預(yù)期的核心特性。接下來,將會介紹一些流行的 IDE,展示一些 IDE 圖片,并將解釋它們所支持的功能及其成本。
Eclipse
在 Eclipse 開發(fā)平臺中有兩個插件支持 PHP。第一個 PHP IDE 項目是 Eclipse Foundation 項目,這意味著它在 Eclipse 許可范圍內(nèi)發(fā)布,并使用 Eclipse Foundation 工具和方法開發(fā)。
另一個是 PHPEclipse,它是獨立開發(fā)的。因為使用 Eclipse,所以這兩個插件都可以在三大操作系統(tǒng)中運行:Windows、Linux 和 Mac OS X。您可以只下載這兩個插件(如果已經(jīng)使用 Eclipse),或者下載包含所需要的全部內(nèi)容的 pre-fab 版本。
這兩個插件都支持核心 IDE 特性。特別是代碼智能特性,它十分強(qiáng)大,可以在需要的時候彈出并顯示所有需要的類、方法和參數(shù)信息。
圖 1 顯示了 Mac OS X 上運行的 PHPEclipse。左邊是在項目中文件的項目視圖。下面是類視圖,顯示所有已經(jīng)定義的類。中間是代碼??梢酝瑫r在多個選項卡中打開多個文件。右邊是調(diào)試和瀏覽的面板。這是常用的 PHPEclipse 用戶界面。
圖 1. OS X 上的 PHPEclipse
圖 2 顯示了來自 Eclipse Foundation 的 PHP IDE 項目插件。
圖 2. OS X 上的 PHP IDE 項目
如果您不能看出區(qū)別,沒有關(guān)系。這兩個插件看起來確實非常類似,因為它們都依靠 Eclipse 平臺呈現(xiàn)代碼瀏覽和智能特性。Eclipse 插件 GUI 能夠保持連貫性是件很好的事情。
我沒有發(fā)現(xiàn)哪一個插件可以把您鎖定在某一個 Eclipse 項目中。您可以經(jīng)常地將一個插件換成另一個插件。在我有限的測試中,我更喜歡 PHP IDE 項目插件,因為我感覺它集成得更好,而且代碼智能特性的性能似乎更快捷。試試這兩個插件,看看您更喜歡哪一個。
這兩個插件的缺點是 UI 不是為 PHP 量身訂做的,原因是 Eclipse 可以用于幾乎所有的編程語言。結(jié)果是,Eclipse 的術(shù)語最初有些另類。如果您剛開始學(xué)習(xí) Eclipse,那么這些插件的學(xué)習(xí)比其他 IDE 更難一些。但是,如果已經(jīng)了解 Eclipse,那么您就能比較快地熟悉 PHPEclipse 或者 PHP IDE 項目。
Eclipse 和這些插件的最大優(yōu)點是什么?它們是免費的,而且穩(wěn)定、可靠。哦,我提到它們是免費的嗎?
Komodo
下一個要介紹的是 ActiveState 的 Komodo IDE。這個 IDE 在 Windows、Mac OS X 和 Linux 上運行,并支持通用的開源語言 —— Perl、PHP 和 Ruby。代碼智能引擎非常可靠。它掃描所有語言安裝找到定制擴(kuò)展,比如 PEAR 模塊。在項目方面,它支持與 CVS、Subversion 和 Perforce 的集成,也允許直接向服務(wù)器 FTP 傳遞代碼。
圖 3 顯示了在 Windows 上運行的 Komodo。左邊是類視圖,右邊是項目視圖。中間的主要部分是代碼視圖。下面是調(diào)試用的斷點、命令輸出等等。對于所有這些系統(tǒng),都可以根據(jù)需要定制 UI 。
評論