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