IDE是什么?常用的PHP IDE對(duì)比
編寫關(guān)于 PHP 的系列文章讓我更加深刻地了解了 PHP 開發(fā)人員的世界。我和許多 PHP 程序員交談過,最令我驚奇的是只有很少的人使用 IDE。大多數(shù)程序員使用文本編輯器,比如 Microsoft® Windows® 上的記事本、Emacs 或者 Vim。
我提到的這些文本編輯器(以及我沒提到)都是很不錯(cuò)的 —— 我不想討論哪個(gè)編輯器更好。但是,我要強(qiáng)調(diào)的是不使用文本編輯器會(huì)使您對(duì) PHP 代碼有更深的見解。幾乎所有人都將 PHP 項(xiàng)目視為只不過是文件目錄而已(這種看法十分片面)?,F(xiàn)在就讓我?guī)M(jìn)入 IDE 的世界,向您展示 IDE 能夠 —— 或者應(yīng)該 —— 給您帶來什么,并向您介紹幾個(gè)最流行的PHP IDE。
什么是 IDE?
簡(jiǎn)而言之,IDE 為編碼工作提供了一站式服務(wù)。IDE 包括一個(gè)編輯器,在此編輯器內(nèi)可以編輯代碼、調(diào)試代碼、在瀏覽器(通常是嵌入式的)中查看代碼和簽入和簽出源碼控制。為了支持這些功能,IDE 擁有一套在基本編輯器(比如記事本或者 Vim)中所找不到的特性。當(dāng)然,您可以通過擴(kuò)展編輯器來實(shí)現(xiàn)這些功能,但是 IDE 在一個(gè)精簡(jiǎn)軟件包中囊括了所有這些功能 —— 并都已預(yù)配置:
項(xiàng)目
IDE 的一個(gè)關(guān)鍵特性是它把一個(gè) PHP 應(yīng)用程序看作是一個(gè)項(xiàng)目,而不僅僅是一組文件。這個(gè)概念 —— 項(xiàng)目 —— 維護(hù)額外的信息,比如源碼控制的配置、用于調(diào)試的數(shù)據(jù)庫設(shè)置,以及某一關(guān)鍵目錄所在位置。
調(diào)試
另一個(gè)方便的特性是集成調(diào)試。使用這個(gè)功能,可以在編輯器中設(shè)置斷點(diǎn),當(dāng) PHP 解釋程序執(zhí)行到這個(gè)腳本時(shí)就會(huì)停止。從斷點(diǎn)開始,就可以檢查局部變量的值,在代碼中診斷問題。在代碼中可以使用 echo 語句來檢查值或者也可以使用錯(cuò)誤日志獲得變量的值。
代碼智能
PHP 是一種非常規(guī)則的編程語言,這意味著它遵循著簡(jiǎn)單的模式。這些模式不僅使代碼易于編寫,也使 IDE 在項(xiàng)目中檢查代碼變得很容易。此外,它們可以通過顯示檢查結(jié)果幫助您編寫程序。例如,如果在項(xiàng)目中定義了一個(gè)名為 MyClass 的類,在鍵入關(guān)鍵詞 new 時(shí),IDE 會(huì)立即提供一個(gè)包括 MyClass 作為選項(xiàng)的彈出窗口。當(dāng)使用那種類型的對(duì)象時(shí),IDE 就會(huì)顯示它的可用方法和實(shí)例變量。當(dāng)開始鍵入一個(gè)函數(shù)命令時(shí),IDE 就會(huì)顯示它的可用參數(shù)。公正地說,這是應(yīng)該使用 IDE 而不是文本編輯器的首要原因。這種代碼智能可以有效減少敲錯(cuò)類名、方法名和參數(shù)。
類視圖
IDE 中的代碼智能引擎產(chǎn)生的另一個(gè)作用是 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)?HTML 和 CSS 比較簡(jiǎn)單,所以 IDE 對(duì)它們的支持是最好的。對(duì)于 JavaScript 的支持經(jīng)常會(huì)突出語法,但是支持比不支持要好。
源碼控制
這里評(píng)價(jià)的所有 IDE 都支持一些與源碼控制系統(tǒng)的連接,允許隨著時(shí)間維護(hù)項(xiàng)目中的文件版本??梢詷?biāo)記文件的特別版本為發(fā)布版本,這樣在需要撤銷改動(dòng)的時(shí)候就可以恢復(fù)。在團(tuán)隊(duì)環(huán)境中使用源碼控制系統(tǒng)是很關(guān)鍵的,即使對(duì)于個(gè)人使用也很重要。當(dāng)磁盤癱瘓或者客戶突然想要以前的版本而不是現(xiàn)在的版本的時(shí)候,一個(gè)好的源碼控制系統(tǒng)就可以發(fā)揮作用了。大多數(shù)的 IDE 都支持 Concurrent Version System (CVS) 和 Subversion,它們都是開源控制系統(tǒng)。其中一種 IDE 支持 Perforce —— 一款商業(yè)源碼控制系統(tǒng)。
FTP/SFTP 集成
與源碼控制相關(guān)的一種功能是在服務(wù)器中對(duì)于最新的代碼使用 FTP 。這比使用 FTP 客戶機(jī)或者自己打包文件并發(fā)送給服務(wù)器然后再解包要容易許多。
數(shù)據(jù)庫導(dǎo)航
一個(gè)非基本但十分有用的特性是數(shù)據(jù)庫導(dǎo)航。使用這個(gè)特性,可以瀏覽應(yīng)用程序訪問的數(shù)據(jù)庫、找到表格和字段名并返回查詢結(jié)果。一些系統(tǒng)甚至可以自動(dòng)寫入一些數(shù)據(jù)庫訪問代碼。
集成 Web 瀏覽器
一些 IDE 支持集成 Web 瀏覽器,可以直接導(dǎo)航到正在使用指定的附加參數(shù)編輯的頁面,這個(gè)瀏覽器可以宿主在 IDE 內(nèi),也可以外部調(diào)用。誠(chéng)實(shí)地講,我并不大喜歡集成瀏覽器,因?yàn)槲也唤橐庠诰庉嫶a和查看結(jié)果這兩個(gè)獨(dú)立的應(yīng)用程序之間切換。但是我知道它確實(shí)有一定的作用,但您不必一定要使用它。
片段
在所有這些 IDE 中我發(fā)現(xiàn)的最后一個(gè)特性是對(duì)于整段和定制代碼片段的支持。片段 是完成小任務(wù)(比如在一些輸入中運(yùn)行常規(guī)表達(dá)式、連接到數(shù)據(jù)庫和查詢數(shù)據(jù)庫)的小部分代碼。
以上總結(jié)了目前從購(gòu)買的或者開源的 IDE 中可以預(yù)期的核心特性。接下來,將會(huì)介紹一些流行的 IDE,展示一些 IDE 圖片,并將解釋它們所支持的功能及其成本。
常用的PHP IDE
Eclipse
在 Eclipse 開發(fā)平臺(tái)中有兩個(gè)插件支持 PHP。第一個(gè) PHP IDE 項(xiàng)目是 Eclipse Foundation 項(xiàng)目,這意味著它在 Eclipse 許可范圍內(nèi)發(fā)布,并使用 Eclipse Foundation 工具和方法開發(fā)。
另一個(gè)是 PHPEclipse,它是獨(dú)立開發(fā)的。因?yàn)槭褂?Eclipse,所以這兩個(gè)插件都可以在三大操作系統(tǒng)中運(yùn)行:Windows、Linux® 和 Mac OS X。您可以只下載這兩個(gè)插件(如果已經(jīng)使用 Eclipse),或者下載包含所需要的全部?jī)?nèi)容的 pre-fab 版本。
這兩個(gè)插件都支持核心 IDE 特性。特別是代碼智能特性,它十分強(qiáng)大,可以在需要的時(shí)候彈出并顯示所有需要的類、方法和參數(shù)信息。
圖 1 顯示了 Mac OS X 上運(yùn)行的 PHPEclipse。左邊是在項(xiàng)目中文件的項(xiàng)目視圖。下面是類視圖,顯示所有已經(jīng)定義的類。中間是代碼??梢酝瑫r(shí)在多個(gè)選項(xiàng)卡中打開多個(gè)文件。右邊是調(diào)試和瀏覽的面板。這是常用的 PHPEclipse 用戶界面。
圖2顯示了來自 Eclipse Foundation 的 PHP IDE 項(xiàng)目插件。
如果您不能看出區(qū)別,沒有關(guān)系。這兩個(gè)插件看起來確實(shí)非常類似,因?yàn)樗鼈兌家揽?Eclipse 平臺(tái)呈現(xiàn)代碼瀏覽和智能特性。Eclipse 插件 GUI 能夠保持連貫性是件很好的事情。
我沒有發(fā)現(xiàn)哪一個(gè)插件可以把您鎖定在某一個(gè) Eclipse 項(xiàng)目中。您可以經(jīng)常地將一個(gè)插件換成另一個(gè)插件。在我有限的測(cè)試中,我更喜歡 PHP IDE 項(xiàng)目插件,因?yàn)槲腋杏X它集成得更好,而且代碼智能特性的性能似乎更快捷。試試這兩個(gè)插件,看看您更喜歡哪一個(gè)。
這兩個(gè)插件的缺點(diǎn)是 UI 不是為 PHP 量身訂做的,原因是 Eclipse 可以用于幾乎所有的編程語言。結(jié)果是,Eclipse 的術(shù)語最初有些另類。如果您剛開始學(xué)習(xí) Eclipse,那么這些插件的學(xué)習(xí)比其他 IDE 更難一些。但是,如果已經(jīng)了解 Eclipse,那么您就能比較快地熟悉 PHPEclipse 或者 PHP IDE 項(xiàng)目。
Komodo
下一個(gè)要介紹的是 ActiveState 的 Komodo IDE。這個(gè) IDE 在 Windows、Mac OS X 和 Linux 上運(yùn)行,并支持通用的開源語言 —— Perl、PHP 和 Ruby。代碼智能引擎非??煽?。它掃描所有語言安裝找到定制擴(kuò)展,比如 PEAR 模塊。在項(xiàng)目方面,它支持與 CVS、Subversion 和 Perforce 的集成,也允許直接向服務(wù)器 FTP 傳遞代碼。
圖 3 顯示了在 Windows 上運(yùn)行的 Komodo。左邊是類視圖,右邊是項(xiàng)目視圖。中間的主要部分是代碼視圖。下面是調(diào)試用的斷點(diǎn)、命令輸出等等。對(duì)于所有這些系統(tǒng),都可以根據(jù)需要定制 UI 。
Komodo 的一個(gè)獨(dú)特的特性是常規(guī)表達(dá)式調(diào)試器。不管您是常規(guī)表達(dá)式的新手還是已經(jīng)開始涉足高級(jí)常規(guī)表達(dá)式特性,這點(diǎn)購(gòu)買的投入都是很值得的。
它的缺點(diǎn)是沒有數(shù)據(jù)庫集成(至少我沒有找到),而且我還遇到了代碼智能不總是在想要的時(shí)候彈出的小問題。但是,總的來說,Komodo 還堪稱是一款健壯的、特色豐富的、可靠的 PHP IDE。
PHP Designer
PHP 設(shè)計(jì)器與其他 IDE 不太相同。當(dāng)然,它支持有限的代碼智能。但是,它更集中于 PHP Web 應(yīng)用程序的設(shè)計(jì)方面。這一點(diǎn)在其集成的瀏覽器上可見一斑,該瀏覽器特別地采用了像素標(biāo)尺用于幫助在頁面上定位元素。
圖4顯示了運(yùn)行的 PHP 設(shè)計(jì)器。
PHP 設(shè)計(jì)器中的 PHP 的代碼智能和調(diào)試特性不是很顯著,而對(duì) HTML、CSS 和 JavaScript 的代碼智能支持上要相對(duì)更強(qiáng)一些。PHP 設(shè)計(jì)器介于程序員使用的 IDE (主要側(cè)重于代碼)和 Adobe Dreamweaver (更側(cè)重于設(shè)計(jì))之間。
PhpED
NuSphere 的只用于 Windows 的 PhpED 在所有這里介紹的 IDE 中特性是最豐富的。它有一個(gè)很好的內(nèi)部調(diào)試器,并為了更容易地訪問頁面調(diào)試而把調(diào)試工具條放到了 Microsoft Internet Explorer®之內(nèi)。
圖 5 顯示了在 Windows 中使用 PHPEd 開發(fā) PHP 應(yīng)用程序。在最左邊是項(xiàng)目的文件視圖。右邊緊挨著的是類視圖,最右邊是代碼視圖。下面是輸出狀態(tài)。您可能已經(jīng)注意到,所有這些 IDE 都遵循著相同的基本設(shè)計(jì)風(fēng)格。
PhpED 的突出特性包括一個(gè)很棒的調(diào)試器、優(yōu)秀的數(shù)據(jù)庫訪問、較好的代碼智能特性以及集成的 PHP 幫助。
PHPEdit
來自 WaterProof Software 的 PHPEdit 感覺像是應(yīng)用于 PHP 的 Microsoft msdev 環(huán)境 —— 這是個(gè)不錯(cuò)的事情。PHPEdit 是僅用于 Windows 的 IDE,很容易設(shè)置。它甚至還有 PHP 的版本。在 PHP、CSS 和 HTML 的代碼智能方面它做得很好,但是卻不提供對(duì) JavaScript 的代碼智能的支持。圖 6 顯示了運(yùn)行的 PHPEdit。
為了便于部署,PHPEdit 可以連接到 CVS 和 Subversion,以及 FTP 和它自己專有的 ezDeployment 系統(tǒng)。除了代碼智能特性,為了加速開發(fā),這款 IDE 有一個(gè)極好的代碼示例整體模板庫,您還可以向庫里面添加內(nèi)容。
Zend Studio
最后,我們談?wù)?Zend Studio,它被最后列出只是因?yàn)樗?Z 開頭。它可能應(yīng)該是您第一個(gè)想到的。為什么?因?yàn)樗鼇碜?Zend —— PHP 幕后的精英團(tuán)隊(duì)。 而且它真的是很不錯(cuò)。它運(yùn)行于三大系統(tǒng):Windows、Mac OS X 和 Linux。而且絕對(duì)能夠提供您所需要的一切:PHP V4、PHP V5 等等。它的下載需要花很長(zhǎng)時(shí)間,但是非常值得。
作為 IDE,Zend Studio 是最好的。它提供所有想在內(nèi)置庫和定制代碼中擁有的代碼智能特性。它還有非常好的調(diào)試功能,而且極易設(shè)置。要把代碼放到存儲(chǔ)庫(repository)中,Zend Studio 會(huì)連接到 CVS 和 Subversion。要把代碼放到服務(wù)器上,有集成 FTP 可以使用。Zend Studio 非常適合 Macintosh,如圖 7 所示。
在其他一些 IDE 中,代碼片段是內(nèi)置的以使代碼編制更為容易。這款 IDE 也直接集成了數(shù)據(jù)庫以給出可用的表格和字段。
結(jié)束語
有許多極好的 IDE 可供選擇 —— 其中一些甚至是免費(fèi)的 —— 您盡可以選擇一個(gè)試用一下,如果您是專業(yè)人員,就更應(yīng)如此。您可能需要支付公司或者個(gè)人的顧問費(fèi)用,也可能要花錢購(gòu)買必需的商品。如果考慮使用 echo 調(diào)試代碼對(duì)比使用集成的調(diào)試器所花費(fèi)的時(shí)間,IDE 的購(gòu)買價(jià)格絕對(duì)會(huì)物有所值。
本文轉(zhuǎn)載自PHP100!