编写关于 PHP 的系列文章让我更加深刻地了解了 PHP 开发人员的世界。我和许多 PHP 程序员交谈过,最令我惊奇的是只有很少的人使用 IDE。大多数程序员使用文本编辑器,比如 Microsoft® Windows® 上的记事本、Emacs 或者 Vim。
我提到的这些文本编辑器(以及我没提到)都是很不错的 —— 我不想讨论哪个编辑器更好。但是,我要强调的是不使用文本编辑器会使您对 PHP 代码有更深的见解。几乎所有人都将 PHP 项目视为只不过是文件目录而已(这种看法十分片面)。现在就让我带您进入 IDE 的世界,向您展示 IDE 能够 —— 或者应该 —— 给您带来什么,并向您介绍七个最流行的 IDE。
什么是 IDE?
简而言之,IDE 为编码工作提供了一站式服务。IDE 包括一个编辑器,在此编辑器内可以编辑代码、调试代码、在浏览器(通常是嵌入式的)中查看代码和签入和签出源码控制。为了支持这些功能,IDE 拥有一套在基本编辑器(比如记事本或者 Vim)中所找不到的特性。当然,您可以通过扩展编辑器来实现这些功能,但是 IDE 在一个精简软件包中囊括了所有这些功能 —— 并都已预配置:
项目
IDE 的一个关键特性是它把一个 PHP 应用程序看作是一个项目,而不仅仅是一组文件。这个概念 —— 项目 —— 维护额外的信息,比如源码控制的配置、用于调试的数据库设置,以及某一关键目录所在位置。
调试
另一个方便的特性是集成调试。使用这个功能,可以在编辑器中设置断点,当 PHP 解释程序执行到这个脚本时就会停止。从断点开始,就可以检查局部变量的值,在代码中诊断问题。在代码中可以使用 echo 语句来检查值或者也可以使用错误日志获得变量的值。
代码智能
PHP 是一种非常规则的编程语言,这意味着它遵循着简单的模式。这些模式不仅使代码易于编写,也使 IDE 在项目中检查代码变得很容易。此外,它们可以通过显示检查结果帮助您编写程序。例如,如果在项目中定义了一个名为 MyClass 的类,在键入关键词 new 时,IDE 会立即提供一个包括 MyClass 作为选项的弹出窗口。当使用那种类型的对象时,IDE 就会显示它的可用方法和实例变量。当开始键入一个函数命令时,IDE 就会显示它的可用参数。公正地说,这是应该使用 IDE 而不是文本编辑器的首要原因。这种代码智能可以有效减少敲错类名、方法名和参数。
类视图
IDE 中的代码智能引擎产生的另一个作用是 IDE 可以产生项目的 类视图。系统不是显示文件,而是显示已经定义的不同的类,而不管它们所在的文件。当单击类时,编辑器访问相应文件并显示相应类、方法或者实例变量。这在大项目中是一种非常好的导航方法。
多语言支持
这里提到的每种 IDE 不仅支持 PHP 而且支持相关语言集:Javascript、Structured Query Language(SQL)、Hypertext Markup Language(HTML)和 Cascading Style Sheets(CSS)。因为 HTML 和 CSS 比较简单,所以 IDE 对它们的支持是最好的。对于 Javascript 的支持经常会突出语法,但是支持比不支持要好。
源码控制
这里评价的所有 IDE 都支持一些与源码控制系统的连接,允许随着时间维护项目中的文件版本。可以标记文件的特别版本为发布版本,这样在需要撤销改动的时候就可以恢复。在团队环境中使用源码控制系统是很关键的,即使对于个人使用也很重要。当磁盘瘫痪或者客户突然想要以前的版本而不是现在的版本的时候,一个好的源码控制系统就可以发挥作用了。大多数的 IDE 都支持 Concurrent Version System (CVS) 和 Subversion,它们都是开源控制系统。其中一种 IDE 支持 Perforce —— 一款商业源码控制系统。
FTP/SFTP 集成
与源码控制相关的一种功能是在服务器中对于最新的代码使用 FTP 。这比使用 FTP 客户机或者自己打包文件并发送给服务器然后再解包要容易许多。
数据库导航
一个非基本但十分有用的特性是数据库导航。使用这个特性,可以浏览应用程序访问的数据库、找到表格和字段名并返回查询结果。一些系统甚至可以自动写入一些数据库访问代码。
集成 Web 浏览器
一些 IDE 支持集成 Web 浏览器,可以直接导航到正在使用指定的附加参数编辑的页面,这个浏览器可以宿主在 IDE 内,也可以外部调用。诚实地讲,我并不大喜欢集成浏览器,因为我不介意在编辑代码和查看结果这两个独立的应用程序之间切换。但是我知道它确实有一定的作用,但您不必一定要使用它。
片段
在所有这些 IDE 中我发现的最后一个特性是对于整段和定制代码片段的支持。片段 是完成小任务(比如在一些输入中运行常规表达式、连接到数据库和查询数据库)的小部分代码。
以上总结了目前从购买的或者开源的 IDE 中可以预期的核心特性。接下来,将会介绍一些流行的 IDE,展示一些 IDE 图片,并将解释它们所支持的功能及其成本。
Eclipse
在 Eclipse 开发平台中有两个插件支持 PHP。第一个 PHP IDE 项目是 Eclipse Foundation 项目,这意味着它在 Eclipse 许可范围内发布,并使用 Eclipse Foundation 工具和方法开发。
另一个是 PHPEclipse,它是独立开发的。因为使用 Eclipse,所以这两个插件都可以在三大操作系统中运行:Windows、Linux® 和 Mac OS X。您可以只下载这两个插件(如果已经使用 Eclipse),或者下载包含所需要的全部内容的 pre-fab 版本。
这两个插件都支持核心 IDE 特性。特别是代码智能特性,它十分强大,可以在需要的时候弹出并显示所有需要的类、方法和参数信息。
图 1 显示了 Mac OS X 上运行的 PHPEclipse。左边是在项目中文件的项目视图。下面是类视图,显示所有已经定义的类。中间是代码。可以同时在多个选项卡中打开多个文件。右边是调试和浏览的面板。这是常用的 PHPEclipse 用户界面。
图 1. OS X 上的 PHPEclipse
图 2 显示了来自 Eclipse Foundation 的 PHP IDE 项目插件。
图 2. OS X 上的 PHP IDE 项目
如果您不能看出区别,没有关系。这两个插件看起来确实非常类似,因为它们都依靠 Eclipse 平台呈现代码浏览和智能特性。Eclipse 插件 GUI 能够保持连贯性是件很好的事情。
我没有发现哪一个插件可以把您锁定在某一个 Eclipse 项目中。您可以经常地将一个插件换成另一个插件。在我有限的测试中,我更喜欢 PHP IDE 项目插件,因为我感觉它集成得更好,而且代码智能特性的性能似乎更快捷。试试这两个插件,看看您更喜欢哪一个。
这两个插件的缺点是 UI 不是为 PHP 量身订做的,原因是 Eclipse 可以用于几乎所有的编程语言。结果是,Eclipse 的术语最初有些另类。如果您刚开始学习 Eclipse,那么这些插件的学习比其他 IDE 更难一些。但是,如果已经了解 Eclipse,那么您就能比较快地熟悉 PHPEclipse 或者 PHP IDE 项目。
Eclipse 和这些插件的最大优点是什么?它们是免费的,而且稳定、可靠。哦,我提到它们是免费的吗?
Komodo
下一个要介绍的是 ActiveState 的 Komodo IDE。这个 IDE 在 Windows、Mac OS X 和 Linux 上运行,并支持通用的开源语言 —— Perl、PHP 和 Ruby。代码智能引擎非常可靠。它扫描所有语言安装找到定制扩展,比如 PEAR 模块。在项目方面,它支持与 CVS、Subversion 和 Perforce 的集成,也允许直接向服务器 FTP 传递代码。
图 3 显示了在 Windows 上运行的 Komodo。左边是类视图,右边是项目视图。中间的主要部分是代码视图。下面是调试用的断点、命令输出等等。对于所有这些系统,都可以根据需要定制 UI 。
图 3. 在 Windows 上运行的 Komodo
Komodo 是一个商业产品。在我写作本文的时候,这款 IDE 有个人版(US$29.95)和专业版(US$299.95)两个版本可选。它的一个独特的特性是常规表达式调试器。不管您是常规表达式的新手还是已经开始涉足高级常规表达式特性,这点购买的投入都是很值得的。
它的缺点是没有数据库集成(至少我没有找到),而且我还遇到了代码智能不总是在想要的时候弹出的小问题。但是,总的来说,Komodo 还堪称是一款健壮的、特色丰富的、可靠的 PHP IDE。
PHP 设计器
PHP 设计器与其他 IDE 不太相同。当然,它支持有限的代码智能。但是,它更集中于 PHP Web 应用程序的设计方面。这一点在其集成的浏览器上可见一斑,该浏览器特别地采用了像素标尺用于帮助在页面上定位元素。
图 4 显示了运行的 PHP 设计器。
图 4. 在 Windows 上的 PHP 设计器
PHP 设计器中的 PHP 的代码智能和调试特性不是很显著,而对 HTML、CSS 和 Javascript 的代码智能支持上要相对更强一些。PHP 设计器介于程序员使用的 IDE (主要侧重于代码)和 Adobe Dreamweaver (更侧重于设计)之间。如果您正在寻找这类中间产品,那么 PHP 设计器很值得考虑,因为 IDE 对于个人使用是免费的,而其专业版也只需 US$55。
PhpED
NuSphere 的只用于 Windows 的 PhpED 在所有这里介绍的 IDE 中特性是最丰富的。它有一个很好的内部调试器,并为了更容易地访问页面调试而把调试工具条放到了 Microsoft Internet Explorer®之内。
图 5 显示了在 Windows 中使用 PHPEd 开发 PHP 应用程序。在最左边是项目的文件视图。右边紧挨着的是类视图,最右边是代码视图。下面是输出状态。您可能已经注意到,所有这些 IDE 都遵循着相同的基本设计风格。
图 5. 在 Windows 中的 PhpED
PhpED 的突出特性包括一个很棒的调试器、优秀的数据库访问、较好的代码智能特性以及集成的 PHP 帮助。PhpED 的价格范围从基础版本的 US$119 到专业版本的 US$495。另外还有试用版本可用。
PHPEdit
来自 WaterProof Software 的 PHPEdit 感觉像是应用于 PHP 的 Microsoft msdev 环境 —— 这是个不错的事情。PHPEdit 是仅用于 Windows 的 IDE,很容易设置。它甚至还有 PHP 的版本。在 PHP、CSS 和 HTML 的代码智能方面它做得很好,但是却不提供对 Javascript 的代码智能的支持。图 6 显示了运行的 PHPEdit。
图 6. 在 Windows 中的 PHPEdit
为了便于部署,PHPEdit 可以连接到 CVS 和 Subversion,以及 FTP 和它自己专有的 ezDeployment 系统。除了代码智能特性,为了加速开发,这款 IDE 有一个极好的代码示例整体模板库,您还可以向库里面添加内容。PHPEdit 的评估版本可以免费使用,要得到正式版本,需要 US$89。
Zend Studio
最后,我们谈谈 Zend Studio,它被最后列出只是因为它以 Z 开头。它可能应该是您第一个想到的。为什么?因为它来自 Zend —— PHP 幕后的精英团队。 而且它真的是很不错。它运行于三大系统:Windows、Mac OS X 和 Linux。而且绝对能够提供您所需要的一切:PHP V4、PHP V5 等等。它的下载需要花很长时间,但是非常值得。
作为 IDE,Zend Studio 是最好的。它提供所有想在内置库和定制代码中拥有的代码智能特性。它还有非常好的调试功能,而且极易设置。要把代码放到存储库(repository)中,Zend Studio 会连接到 CVS 和 Subversion。要把代码放到服务器上,有集成 FTP 可以使用。Zend Studio 非常适合 Macintosh,如图 7 所示。
图 7. 在 Mac 上的 Zend Studio
在其他一些 IDE 中,代码片段是内置的以使代码编制更为容易。这款 IDE 也直接集成了数据库以给出可用的表格和字段。
Zend Studio 的标准版需要 US$99,专业版需要 US$299。我在这里提到的某些特性在标准版本中没有包含。Zend Studio 试用版本可以免费使用。
结束语
有许多极好的 IDE 可供选择 —— 其中一些甚至是免费的 —— 您尽可以选择一个试用一下,如果您是专业人员,就更应如此。您可能需要支付公司或者个人的顾问费用,也可能要花钱购买必需的商品。如果考虑使用 echo 调试代码对比使用集成的调试器所花费的时间,IDE 的购买价格绝对会物有所值。