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