blob: bbbf6decc47e5dd145dd74807a1585ab984065d7 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--
Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
-->
<html>
<head>
<title>NetBeans IDE PHP 编辑器</title>
<meta name="KEYWORDS" content="NETBEANS, PHP, editor">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="DESCRIPTION" content="NetBeans, PHP editor" >
<link rel="stylesheet" type="text/css" href="../../../netbeans.css" media="screen"></head>
<body>
<h1>NetBeans IDE PHP 编辑器:简要概述</h1>
<p>本文档简要概述了 NetBeans IDE PHP 编辑器的主要功能。</p>
<p><strong>目录</strong></p><img src="../../../images_www/articles/70/netbeans-stamp.gif" class="stamp" width="114" height="114" alt="本页上的内容适用于 NetBeans IDE 7.0" title="本页上的内容适用于 NetBeans IDE 7.0">
<ul>
<li><a href="#gettingReady">准备工作</a></li>
<li><a href="#editorLayout">NetBeans IDE PHP 编辑器布局</a></li>
<li><a href="#SyntaxHighlighting">语法突出显示</a></li>
<li><a href="#goToDeclaration">转至声明</a></li>
<li><a href="#Navigator">导航</a></li>
<li><a href="#CodeFolding">代码折叠</a></li>
<li><a href="#SmartIndent">智能缩排</a></li>
<li><a href="#Formatting">格式设置</a></li>
<li><a href="#BracketCompletion">括号完成</a></li>
<li><a href="#instant-rename">重命名重构和即时重命名</a></li>
<li><a href="#CodeCompletion">代码完成</a>
<ul>
<li><a href="#snippets">代码片段</a></li>
<li><a href="#contextSensitiveProposals">上下文有关建议</a></li>
<li><a href="#abbreviations">代码模板和缩写</a></li>
<li><a href="#cc-constructors">构造函数的代码完成</a></li>
<li><a href="#cc-sql">SQL 代码完成</a></li>
<li><a href="#cc-namespaces">PHP 5.3 名称空间</a></li>
<li><a href="#cc-overridden-methods">覆盖和实现的方法</a></li>
</ul>
</li>
<li><a href="#phpdoc">PHPDocumentor 支持</a></li>
<li><a href="#code-generators">代码生成器</a>
<ul>
<li><a href="#generate-constructors">构造函数</a></li>
<li><a href="#generate-getters-setters">Getter 和 Setter</a></li>
<li><a href="#generate-overriden-methods">覆盖和实现的方法</a></li>
</ul></li>
<li><a href="#vartyp-cmnt">在注释中定义变量类型</a></li>
<li><a href="#ParameterHints">参数提示</a></li>
<li><a href="#errorMessages">错误消息</a></li>
<li><a href="#phpunit">PHPUnit 和 Selenium 测试</a></li>
<li><a href="#symfony">Symfony 和 Zend 框架支持</a></li>
</ul>
<p><b>要学习本教程,您需要具备以下软件和资源。</b></p>
<table>
<tbody>
<tr>
<th class="tblheader" scope="col">软件或资源</th>
<th class="tblheader" scope="col">要求的版本</th>
</tr>
<tr>
<td class="tbltd1"><a target="_blank" href="https://netbeans.org/downloads/index.html">NetBeans IDE</a></td>
<td class="tbltd1">PHP 下载包</td>
</tr>
<tr>
<td class="tbltd1">PHP 引擎</td>
<td class="tbltd1">版本 5
</tr>
<tr>
<td class="tbltd1">Web 服务器</td>
<td>推荐使用 <a target="_blank" href="http://httpd.apache.org/download.cgi">Apache HTTP Server 2.2</a><br></td>
</tr>
<tr>
<td class="tbltd1">PHP 调试器</td>
<td><a target="_blank" href="http://www.xdebug.org">XDebug 2.0 或更高版本</a></td>
</tr>
</tbody>
</table>
<h2><a name="gettingReady"></a>准备工作</h2>
<p>要在适用于 PHP 的 NetBeans IDE 中成功开发和部署 PHP 应用程序,您需要<a href="../../trails/php.html#configuration">为进行 PHP 开发安装并配置所有必需的软件</a></p>
<h2><a name="editorLayout"></a>NetBeans IDE PHP 编辑器布局</h2>
<p>该编辑器包含以下窗口:</p>
<ul>
<li>“项目”窗口,显示当前现有项目的列表</li>
<li>“文件”窗口,显示每个项目的文件</li>
<li>“服务”窗口,显示当前可用的外部服务(如数据库)列表。</li>
</ul>
<p>此外,还可以通过按 Ctrl+7 组合键在左侧面板中打开“导航”窗口。</p>
<h2><a name="SyntaxHighlighting"></a>语法突出显示 </h2>
<p>该编辑器为 PHP、HTML、JavaScript 和 CSS 代码块提供了语法突出显示功能。 </p>
<p>在当前版本中,将会突出显示以下语法元素:</p>
<ul>
<li>PHP 关键字 </li>
<li>PHP 变量 </li>
<li>PHP 常量 </li>
<li>HTML 标记</li>
<li>HTML 输入表单属性</li>
<li>当前行以浅蓝色背景显示。</li>
<li>通过双击 PHP 变量、函数或类,所有出现该变量、函数或类的位置都将以橄榄绿突出显示。 </li>
<li>检测出错误的行都会标有红色下划线。 </li>
</ul>
<img src="../../../images_www/articles/71/php/editorguide/syntaxhighlighting.png" alt="NetBeans PHP 编辑器窗口显示一个代码片段,其中突出显示了 PHP 和 HTML 代码元素。" class="margin-around"><br/>
要更改突出显示设置,请选择<tt></tt>“工具”&gt;“选项”,然后切换至“字体和颜色”标签。指定您所选的设置。
<h2><a name="goToDeclaration"></a>转至声明</h2>
通过“转至声明”功能,用户可以从变量出现的位置导航至声明或初始化该变量的行。要使用此功能,请将光标置于相关变量出现的位置,然后从上下文菜单中选择“导航”&gt;“转至声明”。或者,按 CTRL+B 组合键。
<h2><a name="Navigator"></a>导航</h2>
<p>“导航”功能通过将代码结构显示为列表元素(该列表反映当前活动文件的 PHP 结构),帮助用户熟悉代码。如果文件包含任何其他文本源代码(如 HTML),则该列表也会显示其结构。通过双击该列表中的类、函数或变量,光标将会指向被单击元素的声明。 </p>
<p>“导航”列表通常不包含任何嵌入列表,但对于复杂语句,则可能会包含嵌入结构。例如,PHP 类声明语句会表示为已声明类成员的树。 </p>
<p>当用户键入代码时,该列表会动态地进行更新。 </p>
<p>“导航”窗口显示在左侧面板的底部。</p>
<ol>
<li>要打开“导航”窗口,请按 Ctrl+7 组合键。 </li>
<li>从“导航”下拉列表中,选择“导航”。随即出现一个树,该树显示 HTML 和 PHP 结构的分层结构。</li>
<li>要转至所需的元素,请双击列表中的相关节点。
<br/> <img src="../../../images_www/articles/71/php/editorguide/navigation.png" alt="该图显示使用导航工具的示例。此外,还显示了已折叠和展开的类以及函数。" class="margin-around"> </li></ol>
<h2><a name="CodeFolding"></a>代码折叠</h2>
<p>通过使用该编辑器,用户可以选择性地隐藏和显示当前所编辑文件中模块、类或函数的 PHP 源代码。要折叠或显示一段代码,请单击该代码左侧的 &quot;-&quot; 或 &quot;+&quot; 图标。 </p>
<h2><a name="SmartIndent"></a>智能缩排</h2>
<p>在用户键入代码时,编辑器会自动设置代码格式。 </p>
<h2><a name="Formatting"></a>格式设置</h2>
<p>要设置一段代码的格式以使其更容易理解,请执行以下步骤:</p>
<ol>
<li>选择相关的代码段。</li>
<li>单击鼠标右键,然后从上下文菜单中选择“格式”或按 Alt+Shift+F 组合键。</li>
</ol>
<h2><a name="BracketCompletion"></a>括号完成</h2>
<p>当用户键入代码时,该编辑器会自动添加和删除匹配的括号和引号。 </p>
<ul>
<li>当用户键入单引号 ' '、双引号 &quot; &quot;、圆括号 () 和方括号 [] 的第一个符号时,将会添加与之配对的符号。</li>
<li>在一行的结尾处,除了添加右单引号或右双引号之外,还会添加分号。</li>
<li>右大括号在用户按 Enter 键后进行添加,此操作也将激活“智能缩排”功能。</li>
<li>删除左单引号、左双引号、左圆括号或左方括号会导致自动删除相应的右侧符号,但不会影响行尾的分号。
<li>当光标指向右圆括号 )、右花括号 } 或右方括号 ] 时,与之配对的左侧符号将以黄色突出显示。
<br><img src="../../../images_www/articles/71/php/editorguide/paired-brackets-highlighting.png" alt="当光标指向右圆括号或右方括号时,将会突出显示与之配对的左侧元素。" class="margin-around"></li>
</ul>
<h2><a name="instant-rename"></a>重命名重构和即时重命名</h2>
<p>您可以在项目的所有文件中重命名某个元素,如类名。该功能强制您在进行更改之前预览所做的更改。预览窗口显示元素的每个位置,并允许将元素的个别实例从重命名操作中排除。与重命名重构对应的旧功能是即时重命名,后者只能重命名文件中的元素,而不提供预览窗口。</p>
<p>要使用即时重命名,请将光标放在要更改的名称上,然后按 Ctrl-R 组合键。如果即时重命名应用于该变量,则会突出显示该变量或函数名称的所有实例。</p>
<img src="../../../images_www/articles/71/php/editorguide/refactor-ctrlr.png" width="551" height="361" alt="按下 Ctrl-R 组合键之后的 PHP 代码编辑器">
<p> 在更改名称的一个实例时,将会同时更改文件中的所有其他实例</p>
<img src="../../../images_www/articles/71/php/editorguide/refactor-afterchange.png" width="551" height="359" alt="显示重构后的变量名称的 PHP 代码编辑器">
<p>要使用重命名重构,请选择要重命名的元素,然后按 Ctrl-R 组合键,或者右键单击并选择“重构”&gt;“重命名”。将打开一个对话框以重命名该元素。</p>
<img src="../../../images_www/articles/71/php/editorguide/rename-confirm.png" alt="用于重命名变量的对话框" class="margin-around" >
<p>重命名该元素,然后按“预览”。将打开“重构”窗口。在该窗口中,您可以查找项目中的每个元素实例,然后决定是否重命名该实例。</p>
<img src="../../../images_www/articles/71/php/editorguide/refactoring.png" alt="“重构”窗口" class="margin-around" >
<p>有关重命名重构的详细信息,请参见<a href="../../docs/php/screencast-rename-refactoring.html">适用于 PHP 的 NetBeans IDE 7.0 中的重命名重构和其他编辑器改进</a>截屏视频。</p>
<h2><a name="CodeCompletion"></a>代码完成</h2>
<p>“代码完成”是一组功能的通用名称,用于简化和加快编码过程。“代码完成”功能仍然处于开发过程中,其全部功能会在将来的 NetBeans 版本中提供。</p>
<p>目前可以使用下列几种出色的代码完成功能: </p>
<ul>
<li><a href="#snippets">代码片段</a></li>
<li><a href="#contextSensitiveProposals">上下文有关建议</a></li>
<li><a href="#abbreviations">缩写</a></li>
<li><a href="#cc-constructors">构造函数的代码完成</a></li>
<li><a href="#cc-sql">SQL 代码完成</a></li>
<li><a href="#cc-namespaces">PHP 5.3 名称空间</a></li>
<li><a href="#cc-overridden-methods">覆盖和实现的方法</a></li>
</ul>
<div class="indent"><h3><a name="snippets"></a>代码片段 </h3>
<p>通过代码片段,用户可以自动为各种元素生成代码。</p>
<ol>
<li>选择“工具”&gt;“组件面板”&gt;“HTML/JSP 代码片段”。在右侧面板中显示包含各种用户界面元素的组件面板。</li>
<li>将组件面板上的所需图标拖至代码中的相关位置。将显示一个对话框,用于指定相应元素的参数。填写数据。</li>
<li>将生成显示所选元素的代码,并在选定位置插入该代码。</li>
</ol>
<h3><a name="contextSensitiveProposals"></a>上下文有关建议 </h3>
<p>该编辑器提供了上下文有关建议,以便完成下列项的任意数量的开头符号: </p>
<ul>
<li>PHP 关键字(例如,if、else、elseif、while、switch、function 等) </li>
<li>PHP 内置函数(例如,substr、count 等)</li>
<li>预定义或用户定义的变量</li>
</ul>
<p>该编辑器不仅建议扩展,而且还提供了<a href="#ParameterHints">参数提示</a>。要应用代码完成,请执行以下操作: </p>
<ol>
<li>键入所需字符串的开头符号。 </li>
<li>按 Ctrl+空格键。将显示一个下拉列表,其中提供了上下文有关建议。提供的每个建议都附带描述和参数提示。当您继续键入内容时,该列表中的内容会随之发生改变。 </li>
<li>要获取在当前上下文中可用的 PHP 关键字列表,请在先前未键入任何内容的情况下按 Ctrl+空格键。
<br/> <img src="../../../images_www/articles/71/php/editorguide/codecompletionabbreviations.png" alt="上下文有关建议列表。提供的每个建议都附带描述和参数提示。" class="margin-around">
</li>
<li>要获取关于变量的提示,只需键入美元符号 &quot;$&quot;。将显示当前可用的所有局部变量和全局变量的列表。
<br/><img src="../../../images_www/articles/71/php/editorguide/code-completion-variables.png" alt="在用户键入 $ 后变量列表打开。该列表包含 PHP 全局变量和用户定义的变量。" class="margin-around"> </li>
</ol>
<h3><a name="abbreviations"></a>代码模板和缩写</h3>
在当前上下文中,术语“缩写”指的是一组预定义的字符串,它们对应于编程语言中使用的关键字。每个缩写都与一个展开的文本相关联,该文本包含完整的关键字以及该关键字的代码模板(带有参数提示)。要应用此功能,请键入一个缩写,然后按 Tab 键。 <br/>
<img src="../../../images_www/articles/71/php/editorguide/abbreviations-type-abbr.png" alt="键入了关键字 &quot;class&quot; 的缩写 &quot;cls&quot;" class="margin-around"><br/>
该缩写将被替换为相应的关键字,并且会提供该关键字的代码模板。<br/>
<img src="../../../images_www/articles/71/php/editorguide/abbreviation-unfolded.png" alt="显示了缩写的完整文本以及用于定义类的代码模板" class="margin-around"><br/>
要查看已定义的缩写以及对应的代码模板的列表,请执行以下操作:
<ol>
<li>选择“工具”&gt;“选项”&gt;“编辑器”&gt;“代码模板”<tt></tt></li>
<li>从“语言”下拉列表中,选择 &quot;PHP&quot;。将显示 PHP 缩写以及为其定义的代码模板的列表。</li>
<li>要在该列表中添加或删除定义,请分别使用“新建”或“删除”按钮。</li>
<li>要编辑定义,请选择相关行,然后在该列表下方的编辑字段中编辑文本。 <br/>
<img src="../../../images_www/articles/71/php/editorguide/code-template-definitions-list.png" alt="缩写和为其定义的代码模板的列表" width="536" height="513" class="margin-around"></li></ol>
<p>有关详细信息,请参见<a href="../../docs/php/code-templates_zh_CN.html">适用于 PHP 的 NetBeans IDE 中的代码模板</a></p>
<h3><a name="cc-constructors"/>构造函数的代码完成</h3>
<p>键入 <tt>new</tt> 关键字之后,将会显示代码完成窗口,其中包含项目中所有可用类的构造函数和参数。</p>
<img src="../../../images_www/articles/71/php/editorguide/cc-constructor.png" width="600" height="408" alt="构造函数的代码完成提示" class="margin-around" border="1" />
<h3><a name="cc-sql"/>SQL 代码完成</h3>
<p>当某个字符串以 SQL 关键字 &quot;select&quot; 开头时,将会显示 SQL 代码完成。第一步是选择数据库连接。</p>
<img src="../../../images_www/articles/71/php/editorguide/cc-sql.png" height="384" width="475" alt="提供数据库连接的代码完成" border="1" class="margin-around" />
<p>将显示在 IDE 中注册的所有数据库连接。</p>
<img src="../../../images_www/articles/71/php/editorguide/cc-sql-dbconnections.png" alt="在 IDE 中注册的所有数据库连接" width="554" height="185" class="margin-around" />
<p>选择连接之后,SQL 代码完成将提供该数据库连接中的所有表。 </p>
<p><img src="../../../images_www/articles/71/php/editorguide/cc-sql-tables.png" height="384" width="494" alt="wishlist 数据库连接中的所有表" class="margin-around" border="1" /></p>
<p>如果表具有表列,则也会显示这些列。</p>
<p><img src="../../../images_www/articles/71/php/editorguide/cc-sql-columns.png" height="358" width="530" class="margin-around" alt="显示的表列" border="1" /></p>
<p>SQL 代码完成也适用于表别名。</p>
<img src="../../../images_www/articles/71/php/editorguide/cc-sql-aliases.png" alt="酒店表别名中显示表的 SQL 代码完成" height="352" width="537" border="1" class="margin-around" />
<h3><a name="cc-namespaces"/>PHP 5.3 名称空间</h3>
<p>代码完成支持来自 PHP 5.3 的全限定、部分限定以及未限定的名称空间名称。有关更多信息,请参见<a href="../../docs/php/namespace-code-completion-screencast.html">截屏视频</a></p>
<h3><a name="cc-overridden-methods"/>覆盖和实现的方法</h3>
<p>类成员之间的代码完成功能可以覆盖或实现方法。</p>
<p><img src="../../../images_www/articles/71/php/editorguide/cc_overriden_methods.png" alt="代码完成功能可以覆盖方法" width="600" height="478" class="margin-around"></p>
</div>
<h2><a name="phpdoc"></a>PHPDocumentor 支持</h2>
<p>NetBeans IDE 7.0 中添加了对 PHPDocumentor 的内置支持。有关详细信息,请参见<a href="screencast-phpdoc.html">使用 NetBeans IDE 生成 PHP 文档</a></p>
<p class="alert"><b>警告:</b>PHPDocumentor 不完全支持 PHP 5.3。PHP 文档编制程序没有说明名称空间和某些其他 5.3 功能。</p>
<h2><a name="code-generators"/>代码生成器</h2>
<p>当按 Alt-Insert 组合键(在 Mac 上为 Ctrl-I 组合键)时,打开一个包含所有可能的代码生成器的菜单。生成器列表与上下文有关。具体取决于在按组合键时插入记号在代码中的位置。根据在代码中所处的位置,可以生成数据库连接,数据库表、Lorum Ipsum 文本等。此部分仅介绍以下代码生成器:</p>
<ul>
<li><a href="#generate-constructors">构造函数</a></li>
<li><a href="#generate-getters-setters">Getter 和 Setter</a></li>
<li><a href="#generate-overriden-methods">覆盖和实现的方法</a></li>
</ul>
<div class="indent">
<h3><a name="generate-constructors"/>构造函数</h3>
<p>当插入记号位于类主体中,但不在该主体所包含的任何函数中时,通过按 Alt-Insert 组合键(在 Mac 上为 Ctrl-I 组合键)可以生成构造函数。当选择“生成...构造函数”时,将会打开一个对话框,其中列出了可以由构造函数初始化的字段。字段名称将用作构造函数的参数。</p>
<p><img src="../../../images_www/articles/71/php/editorguide/generate-constructor-fields.png" alt="将由构造函数初始化的字段的对话框" width="352" height="299" class="margin-around"></p>
<p>您可以决定不选择任何字段。在这种情况下,IDE 生成一个没有参数的空构造函数。如果字段是一个具有属性的类,则可以选择单个属性,也可以选择类;选择类时,将会自动选定该类的所有属性。</p>
<p>有关详细信息,请参见 <a target="_blank" href="http://blogs.oracle.com/netbeansphp/entry/generate_constructor_getters_and_setters">NetBeans PHP 博客帖子</a></p>
<h3><a name="generate-getters-setters"/>Getter 和 Setter</h3>
<p>当插入记号位于类主体中时,通过按 Alt-Insert 组合键(在 Mac 上为 Ctrl-I 组合键)并选择 &quot;Getter&quot;、&quot;Setter&quot; 或“getter 和 setter”,可以生成 getter 和 setter。系统仅显示可能的函数。例如,如果您已经具有可用属性的 setter,则将只显示 getter 选项。</p>
<p>当选择“生成...Getter/Setter/getter 和 setter”时,将会出现一个对话框,其中包含可为其生成 getter 或 setter 的属性。属性将以树形式显示。如果选择一个父类,则会自动选定该类的所有属性。</p>
<p>您可以按照 getName 或 get_name 约定命名 getter 或 setter。</p>
<p>有关详细信息,请参见原始的 <a target="_blank" href="http://blogs.oracle.com/netbeansphp/entry/generate_constructor_getters_and_setters">NetBeans PHP 博客帖子</a>以及有关<a target="_blank" href="http://blogs.oracle.com/netbeansphp/entry/generating_getters_and_setters_improved">改进的 getter 和 setter 生成</a>的帖子。</p>
<h3><a name="generate-overriden-methods"/>覆盖和实现的方法</h3>
<p>当插入记号位于类声明中,且存在多个类成员时,通过按 Alt-Insert 组合键(在 Mac 上为 Ctrl-I 组合键)可以生成覆盖和实现的方法。打开的对话框显示了可以插入的方法,并指示它们是否已被覆盖或实现。</p>
<p><img class="margin-around" src="../../../images_www/articles/71/php/editorguide/generate_overriden_methods.png" alt="生成覆盖的方法的对话框" width="523" height="520"></p>
<p>此功能弥补了“实现所有抽象方法”提示以及<a href="#cc-overridden-methods">用于覆盖和实现的方法的代码完成功能</a>的不足。</p>
<p>有关详细信息,请参见 <a target="_blank" href="http://blogs.oracle.com/netbeansphp/entry/generate_overriden_implemented_methods">NetBeans PHP 博客帖子</a></p>
<h2><a name="ParameterHints"></a>参数提示 </h2>
<p>该编辑器会提示用户某个函数或方法在其调用上下文中的形式参数。</p>
<ol>
<li>键入您要调用的函数的开头字符。 </li>
<li>按 Ctrl+空格键。将显示一个下拉列表,其中提供了上下文有关建议以及每个建议的形式参数。<br/>
<img src="../../../images_www/articles/71/php/editorguide/parametr-hint-one.png" alt="上下文有关提示的列表" class="margin-around">
</li>
<li>选择相关建议,然后按 Enter 键。在代码中插入所选函数的名称,并在方括号中显示用于输入参数的模板。 <br/>
<img src="../../../images_www/articles/71/php/editorguide/parametr-hint-two.png" alt="所选的上下文有关建议的参数提示。" class="margin-around">
</li>
</ol>
<h2><a name="vartyp-cmnt"/>在注释中定义变量类型</h2>
<p>您可以在注释中定义变量及其类型。注释必须采用 <em>/* @<strong>var</strong> $variable type */</em> 格式。如果注释编写正确,则 <em><strong>var</strong></em> 标记会以粗体显示。</p>
<p><img src="../../../images_www/articles/71/php/editorguide/vardoc-basic.png" height="319" width="600" alt="注释中声明的变量" class="margin-around" border="1" /> </p>
<p>您可以使用代码模板 <tt>vdoc</tt>,然后按 Tab 键以生成定义变量的注释。生成注释后,变量名称将处于选定状态,您可以对其进行更改。然后,再次按 Tab 键,将会选定类型。</p>
<p><img src="../../../images_www/articles/71/php/editorguide/vardoc-template.png" height="269" width="600" alt="由 vdoc 模板生成的变量声明注释" class="margin-around" border="1" /> </p>
<p>代码完成会自动设置变量名称和类型。如果在模板插入位置之后使用了某个变量,则缺省情况下会建议采用模板后面的该变量名称。如果在模板插入位置之后未使用任何变量,但在模板之前使用了某个变量,则缺省情况下会建议采用模板前面的该变量名称。如果 NetBeans IDE 无法在模板使用位置附近找到任何变量,则缺省名称为 <em>variable</em>。变量类型会按照相同的规则自动进行设置。</p>
<img src="../../../images_www/articles/71/php/editorguide/vardoc-template-names.png" alt="由 vdoc 模板生成的包含缺省变量名称和类型的变量声明注释" class="margin-around" border="1" height="385" width="600" />
<h2><a name="errorMessages"></a>错误消息</h2>
<p>该编辑器会在您键入代码时分析代码的语法,并且会通过对错误行加下划线以及在这些行旁边设置红色圆点来标记语法错误。要获取有关错误的说明,请将鼠标悬停在错误行上,或单击红色圆点。随即出现一个工具提示,其中提供了有关错误的简要说明。 <br/>
<img src="../../../images_www/articles/71/php/editorguide/error-messaging-m1.png" alt="错误消息:错误行上的工具提示。" class="margin-around">
</p>
<h2><a name="phpunit"/>PHPUnit 和 Selenium 测试</h2>
<p>适用于 PHP 的 NetBeans IDE 支持 <a target="_blank" href="http://www.phpunit.de">PHPUnit</a> 自动测试。通过 PHPUnit,NetBeans IDE 可为 PHP 提供代码覆盖率,这与 IDE 为 Python 和 Ruby 提供的代码覆盖率类似。测试输出将显示在功能丰富的输出窗口中,该窗口与 IDE 的 JUnit、Ruby 和 Python 测试运行器所使用的输出窗口相同。 </p>
<p>NetBeans IDE 还支持将 Selenium 可移植测试框架与 PHPUnit 结合使用。Selenium 插件可以从更新中心获取。安装此插件会将 Selenium 服务器添加到 IDE 的已注册服务器中,并将 Selenium 测试选项添加到 PHP 菜单。</p>
<p>有关更多信息,请参见<a href="./phpunit.html">使用 PHPUnit 和 Selenium 进行测试</a></p>
<!-- Add for 6.9.1
<h2><a name="spellchecker"/>Spellchecker</h2>
<p>A spellchecker is available in NetBeans 6.9. In the Options dialog, you can switch spellchecking on or off for different languages.</p>
<p><img src="../../../images_www/articles/71/php/editorguide/spellchecker-options.png" class="margin-around" alt="Options dialog for spellchecker" width="600" height="448"></p>
<p>In the Options dialog, you can add and remove new dictionaries and set the locale.&nbsp; When you want to add a new dictionary, you have to have a file with the words. The format of the dictionary file is a list of words with every word on a new line. You have to tell NetBeans the encoding of the dictionary file and for which locale the file should be used. </p>
<p><img src="../../../images_www/articles/71/php/editorguide/spellchecker-newdictionary.png" class="margin-around" alt="Adding a new dictionary to the spellchecker" width="600" height="180"></p>
<p>When the spellchecker finds a word that is not in its dictionary, it underlines that word in red. The spellchecker also adds a tooltip to that word that says &quot;Misspelled word.&quot; Note that HTML text is checked in PHP files.</p>
<p><img src="../../../images_www/articles/71/php/editorguide/spellchecker-html.png" alt="Errors found in HTML text in PHP file" width="600" height="68" class="margin-around"></p>
-->
<h2><a name="symfony"/>Symfony 和 Zend 框架支持</h2>
<p>Symfony 和 Zend 框架支持内置于 PHP 编辑器中。它识别现有的 Symfony 和 Zend 框架,并且您可以在“新建 PHP 项目”向导的最后一个面板中为新项目添加框架。</p>
<p>在具有 Symfony 或 Zend 支持的 PHP 项目中,可以从项目的上下文菜单中运行 Symfony 或 Zend 命令。</p>
<img src="../../../images_www/articles/71/php/editorguide/symfony-contextmenu-commands.png" alt="显示 Symfony 命令的上下文菜单" class="margin-around" />
<p>可以使用命令 UI 执行以下操作:</p>
<ul>
<li>过滤 Symfony/Zend 命令 (1)</li>
<li>指定命令参数 (2)</li>
<li>选择命令 (3)</li>
<li> 查看命令的上下文帮助 (4) </li>
<li>预览将运行的整个命令 (5)</li>
</ul>
<img src="../../../images_www/articles/72/php/editorguide/symfony-command-dialog.png" class="margin-around" alt="带标注的 Symfony 命令对话框" />
<p>命令列表因项目而异。这意味着,如果用户使用 Doctrine 而不是 Propel,则不会列出 Propel 命令,而仅列出 Doctrine 命令。此外,还可以使用来自项目的 Symfony 插件的所有命令。</p>
<p>代码完成包括 Symfony 视图中的 Symfony 变量和 Zend 视图中的 Zend 变量。 </p>
<img src="../../../images_www/articles/72/php/editorguide/symfony-variables.png" alt="代码完成中的 Symfony 变量" class="margin-around" border="1" />
<p>IDE 还提供了 Symfony 或 Zend 视图和操作间的导航快捷方式。这些快捷方式在 NetBeans 6.9 中得到了改进。此外,<em></em>视图模板/文件中的代码完成现在包括<em></em>控制器/操作文件中声明的变量。有关详细信息,请参见 <a target="_blank" href="http://blogs.oracle.com/netbeansphp/entry/framework_support_improvements">NetBeans PHP 博客帖子</a></p>
<p>有关 Zend 框架支持的更多信息,请参见 Zend <a href="../../docs/php/zend-framework-screencast.html">截屏视频</a></p>
<h2><a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20PHP%20Editor%20Guide">请将您的意见和建议发送给我们</a></h2>
<br style="clear:both;" />
<p>要发送意见和建议、获得支持以及随时了解 NetBeans IDE PHP 开发功能的最新开发情况,请<a href="../../../community/lists/top.html">加入 users@php.netbeans.org 邮件列表</a></p>
<p><a href="../../trails/php.html">返回至 PHP 学习资源</a></p>
</body>
</html>