本文發(fā)掘集成開發(fā)環(huán)境(IDE)的所有用途,并比較7種流行的IDE的成本和優(yōu)勢。
編寫關于PHP的系列文章讓我更加深刻地了解了PHP開發(fā)人員的世界。我和許多PHP程序員交談過,最令我驚奇的是只有很少的人使用IDE。大多數(shù)程序員使用文本編輯器,比如MicrosoftWindows上的記事本、Emacs或者Vim。
我提到的這些文本編輯器(以及我沒提到)都是很不錯的——我不想討論哪個編輯器更好。但是,我要強調(diào)的是不使用文本編輯器會使您對PHP代碼有更深的見解。幾乎所有人都將PHP項目視為只不過是文件目錄而已(這種看法十分片面)。現(xiàn)在就讓我?guī)M入IDE的世界,向您展示IDE能夠——或者應該——給您帶來什么,并向您介紹七個最流行的IDE。
什么是IDE?
簡而言之,IDE為編碼工作提供了一站式服務。IDE包括一個編輯器,在此編輯器內(nèi)可以編輯代碼、調(diào)試代碼、在瀏覽器(通常是嵌入式的)中查看代碼和簽入和簽出源碼控制。為了支持這些功能,IDE擁有一套在基本編輯器(比如記事本或者Vim)中所找不到的特性。當然,您可以通過擴展編輯器來實現(xiàn)這些功能,但是IDE在一個精簡軟件包中囊括了所有這些功能——并都已預配置:
項目
IDE的一個關鍵特性是它把一個PHP應用程序看作是一個項目,而不僅僅是一組文件。這個概念——項目——維護額外的信息,比如源碼控制的配置、用于調(diào)試的數(shù)據(jù)庫設置,以及某一關鍵目錄所在位置。
調(diào)試
另一個方便的特性是集成調(diào)試。使用這個功能,可以在編輯器中設置斷點,當PHP解釋程序執(zhí)行到這個腳本時就會停止。從斷點開始,就可以檢查局部變量的值,在代碼中診斷問題。在代碼中可以使用echo語句來檢查值或者也可以使用錯誤日志獲得變量的值。
代碼智能
PHP是一種非常規(guī)則的編程語言,這意味著它遵循著簡單的模式。這些模式不僅使代碼易于編寫,也使IDE在項目中檢查代碼變得很容易。此外,它們可以通過顯示檢查結(jié)果幫助您編寫程序。例如,如果在項目中定義了一個名為MyClass的類,在鍵入關鍵詞new時,IDE會立即提供一個包括MyClass作為選項的彈出窗口。當使用那種類型的對象時,IDE就會顯示它的可用方法和實例變量。當開始鍵入一個函數(shù)命令時,IDE就會顯示它的可用參數(shù)。公正地說,這是應該使用IDE而不是文本編輯器的首要原因。這種代碼智能可以有效減少敲錯類名、方法名和參數(shù)。
類視圖
IDE中的代碼智能引擎產(chǎn)生的另一個作用是IDE可以產(chǎn)生項目的類視圖。系統(tǒng)不是顯示文件,而是顯示已經(jīng)定義的不同的類,而不管它們所在的文件。當單擊類時,編輯器訪問相應文件并顯示相應類、方法或者實例變量。這在大項目中是一種非常好的導航方法。
多語言支持
這里提到的每種IDE不僅支持PHP而且支持相關語言集:JavaScript、StructuredQueryLanguage(SQL)、HypertextMarkupLanguage(HTML)和CascadingStyleSheets(CSS)。因為HTML和CSS比較簡單,所以IDE對它們的支持是最好的。對于JavaScript的支持經(jīng)常會突出語法,但是支持比不支持要好。
源碼控制
這里評價的所有IDE都支持一些與源碼控制系統(tǒng)的連接,允許隨著時間維護項目中的文件版本。可以標記文件的特別版本為發(fā)布版本,這樣在需要撤銷改動的時候就可以恢復。在團隊環(huán)境中使用源碼控制系統(tǒng)是很關鍵的,即使對于個人使用也很重要。當磁盤癱瘓或者客戶突然想要以前的版本而不是現(xiàn)在的版本的時候,一個好的源碼控制系統(tǒng)就可以發(fā)揮作用了。大多數(shù)的IDE都支持ConcurrentVersionSystem(CVS)和Subversion,它們都是開源控制系統(tǒng)。其中一種IDE支持Perforce——一款商業(yè)源碼控制系統(tǒng)。
FTP/SFTP集成
與源碼控制相關的一種功能是在服務器中對于最新的代碼使用FTP。這比使用FTP客戶機或者自己打包文件并發(fā)送給服務器然后再解包要容易許多。
數(shù)據(jù)庫導航
一個非基本但十分有用的特性是數(shù)據(jù)庫導航。使用這個特性,可以瀏覽應用程序訪問的數(shù)據(jù)庫、找到表格和字段名并返回查詢結(jié)果。一些系統(tǒng)甚至可以自動寫入一些數(shù)據(jù)庫訪問代碼。
集成Web瀏覽器
一些IDE支持集成Web瀏覽器,可以直接導航到正在使用指定的附加參數(shù)編輯的頁面,這個瀏覽器可以宿主在IDE內(nèi),也可以外部調(diào)用。誠實地講,我并不大喜歡集成瀏覽器,因為我不介意在編輯代碼和查看結(jié)果這兩個獨立的應用程序之間切換。但是我知道它確實有一定的作用,但您不必一定要使用它。
片段
在所有這些IDE中我發(fā)現(xiàn)的最后一個特性是對于整段和定制代碼片段的支持。片段是完成小任務(比如在一些輸入中運行常規(guī)表達式、連接到數(shù)據(jù)庫和查詢數(shù)據(jù)庫)的小部分代碼。
以上總結(jié)了目前從購買的或者開源的IDE中可以預期的核心特性。接下來,將會介紹一些流行的IDE,展示一些IDE圖片,并將解釋它們所支持的功能及其成本。