本文发掘集成开发环境(IDE)的所有用途,并比较7种流行的IDE的成本和优势。
编写关于PHP的系列文章让我更加深刻地了解了PHP开发人员的世界。我和许多PHP程序员交谈过,最令我惊奇的是只有很少的人使用IDE。大多数程序员使用文本编辑器,比如MicrosoftWindows上的记事本、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、StructuredQueryLanguage(SQL)、HypertextMarkupLanguage(HTML)和CascadingStyleSheets(CSS)。因为HTML和CSS比较简单,所以IDE对它们的支持是最好的。对于JavaScript的支持经常会突出语法,但是支持比不支持要好。
源码控制
这里评价的所有IDE都支持一些与源码控制系统的连接,允许随着时间维护项目中的文件版本。可以标记文件的特别版本为发布版本,这样在需要撤销改动的时候就可以恢复。在团队环境中使用源码控制系统是很关键的,即使对于个人使用也很重要。当磁盘瘫痪或者客户突然想要以前的版本而不是现在的版本的时候,一个好的源码控制系统就可以发挥作用了。大多数的IDE都支持ConcurrentVersionSystem(CVS)和Subversion,它们都是开源控制系统。其中一种IDE支持Perforce——一款商业源码控制系统。
FTP/SFTP集成
与源码控制相关的一种功能是在服务器中对于最新的代码使用FTP。这比使用FTP客户机或者自己打包文件并发送给服务器然后再解包要容易许多。
数据库导航
一个非基本但十分有用的特性是数据库导航。使用这个特性,可以浏览应用程序访问的数据库、找到表格和字段名并返回查询结果。一些系统甚至可以自动写入一些数据库访问代码。
集成Web浏览器
一些IDE支持集成Web浏览器,可以直接导航到正在使用指定的附加参数编辑的页面,这个浏览器可以宿主在IDE内,也可以外部调用。诚实地讲,我并不大喜欢集成浏览器,因为我不介意在编辑代码和查看结果这两个独立的应用程序之间切换。但是我知道它确实有一定的作用,但您不必一定要使用它。
片段
在所有这些IDE中我发现的最后一个特性是对于整段和定制代码片段的支持。片段是完成小任务(比如在一些输入中运行常规表达式、连接到数据库和查询数据库)的小部分代码。
以上总结了目前从购买的或者开源的IDE中可以预期的核心特性。接下来,将会介绍一些流行的IDE,展示一些IDE图片,并将解释它们所支持的功能及其成本。