blob: 0b67d159abaf4b23d42e0e9d674bac5979d97d46 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
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 alt="此页上的内容适用于 NetBeans IDE 7.2" class="stamp" src="../../../images_www/articles/72/netbeans-stamp-72-73.png" title="此页上的内容适用于 NetBeans IDE 7.2">
<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>
<li><a href="#clever-catch-cc">智能型 Try/Catch 代码完成</a></li>
</ul>
</li>
<li><a href="#php54">PHP 5.4 支持</a></li>
<li><a href="#rectangular">矩形选择内容</a></li>
<li><a href="#phpdoc">ApiGen 支持</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="#spellchecker">拼写检查器</a></li>
<li><a href="#symfony">Symfony、Symfony2 和 Zend 框架支持</a></li>
<li><a href="#smarty">Smarty 支持</a></li>
<li><a href="#doctrine2">Doctrine2 支持</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 href="https://netbeans.org/downloads/index.html" target="_blank">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 href="http://httpd.apache.org/download.cgi" target="_blank">Apache HTTP Server 2.2</a><br></td>
</tr>
<tr>
<td class="tbltd1">PHP 调试器</td>
<td><a href="http://www.xdebug.org" target="_blank">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>"Editor"(编辑器)窗口显示正在编辑的文件。"Editor"(编辑器)窗口为打开的每个文件都提供一个标签。</li>
<li>"Projects"(项目)窗口,显示当前现有项目的列表</li>
<li>"Files"(文件)窗口,显示每个项目的文件</li>
<li>"Services"(服务)窗口,显示当前可用的外部服务(如数据库)列表。</li>
</ul>
<p>此外,还可以通过按 Ctrl+7 组合键在左侧面板中打开 "Navigator"(导航器)窗口。"Navigator"(导航器)窗口显示 PHP 类的结构(如果该类已在 "Editor"(编辑器)中打开)。非类 PHP 文件不显示在 "Navigator"(导航器)窗口中。</p>
<p>要打开以上任一窗口的帮助,请在该窗口中选择任意元素,然后按 F1 键。</p>
<h2><a name="SyntaxHighlighting"></a>语法突出显示 </h2>
<p>该编辑器为 PHP、HTML、JavaScript 和 CSS 代码块提供了语法突出显示功能。 </p>
<p>在当前版本中,将会突出显示以下语法元素:</p>
<ul>
<li>PHP 关键字和变量<br><img alt="突出显示的 PHP 关键字" class="margin-around b-all" height="86" src="../../../images_www/articles/72/php/editorguide/keywords.png" width="402"></li>
<li>PHP 常量和“幻数常量”<br><img alt="幻数常量" class="margin-around b-all" height="20" src="../../../images_www/articles/72/php/editorguide/magic-constant.png" width="341"></li>
<li>HTML 标记,包括输入窗体属性<br><img alt="在 PHP 文件中突出显示的 HTML" class="margin-around b-all" height="85" src="../../../images_www/articles/72/php/editorguide/html.png" width="574"></li>
<li>Apache Web 服务器 <code>.htaccess</code><code>httpd.conf</code> 文件<br><img alt="突出显示的 httpd.conf 文件内容" class="margin-around b-bottom b-right" height="182" src="../../../images_www/articles/72/php/editorguide/improvements-in-coloring-1.png" width="537"></li>
<li>PHP 编号</li>
<li>PHPDoc 注释块内部的 HTML 标记<br><img alt="PHPDoc 块内部突出显示的 PHP 编号和 HTML 标记" class="margin-around b-right b-bottom" height="238" src="../../../images_www/articles/72/php/editorguide/improvements-in-coloring-2.png" width="319"></li>
<li>当前行以浅蓝色背景显示。<br><img alt="以蓝色突出显示的当前行" class="margin-around b-all" height="89" src="../../../images_www/articles/72/php/editorguide/highlight-selected-line.png" width="409"></li>
<li>在将脱字号放在 PHP 变量、函数或类中后,将会突出显示该变量的所有实例。 <img alt="所选变量" class="margin-around b-all" height="189" src="../../../images_www/articles/72/php/editorguide/select-variable.png" width="360"></li>
<li>检测出错误的行都会标有红色下划线。<br><img alt="突出显示的错误" class="margin-around b-all" height="54" src="../../../images_www/articles/72/php/editorguide/error.png" width="365"> </li>
</ul>
<br>
<p>要更改突出显示设置,请选择 <tt>"Tools"(工具)> "Options"(选项)</tt>,然后切换至 "Fonts&amp;Colors"(字体和颜色)标签。指定您所选的设置。</p>
<h2><a name="goToDeclaration"></a>转至声明</h2>
通过 "Go To Declaration"(转至声明)功能,用户可以从变量或函数出现的位置导航至声明或初始化该变量或函数的行。要使用此功能,请将光标置于相关变量或函数出现的位置,然后从上下文菜单中选择 "Navigate"(导航)> "Go to Declaration"(转至声明),或者按 Ctrl-B/⌘-B 组合键或按住 Ctrl 键单击。
<h2><a name="Navigator"></a>"Navigator"(导航器)窗口</h2>
<p>"Navigator"(导航器)窗口将代码结构显示为列表元素,该列表反映当前活动文件的 PHP 结构。如果文件包含任何其他文本源代码(如 HTML),则该列表也会显示其结构。通过双击该列表中的函数或变量,光标将会指向被单击元素的声明。 </p>
<p class="alert"><b>注:</b>"Navigator"(导航器)窗口只显示 PHP 类的 PHP 代码。不会显示某个类之外的 PHP 代码。</p>
<p>"Navigator"(导航器)列表通常不包含任何嵌入列表,但对于复杂语句,则可能会包含嵌入结构。例如,PHP 类声明语句会表示为已声明类成员的树。 </p>
<p>当用户键入代码时,该列表会动态地进行更新。 </p>
<p>"Navigator"(导航器)窗口显示在左侧面板的底部。</p>
<ol>
<li>要打开 "Navigator"(导航器)窗口,请按 Ctrl + 7 组合键,或者转至 "Window"(窗口)> "Navigating"(导航)> "Navigator"(导航器)。随即出现一个树,该树显示 HTML 和 PHP 结构的分层结构。</li>
<li>要转至所需的元素,请双击列表中的相关节点。 <br> <img alt="使用 "Navigator"(导航器)窗口选择函数" class="margin-around b-top b-right b-bottom" height="145" src="../../../images_www/articles/72/php/editorguide/using-navigator-window.png" width="536"></li>
</ol>
<h2><a name="CodeFolding"></a>代码折叠</h2>
<p>通过使用该编辑器,用户可以选择性地隐藏和显示当前所编辑文件中模块、类或函数的 PHP 源代码。要折叠或显示一段代码,请单击该代码左侧的 "-" 或 "+" 图标,或者按 Ctrl+ 或 Ctrl- 组合键。 </p><img alt="自 NB 7.2 起的代码折叠" class="margin-around" height="378" src="../../../images_www/articles/72/php/editorguide/improved-code-folding-1.png" width="536">
<h2><a name="SmartIndent"></a>智能缩进</h2>
<p>在用户键入代码时,编辑器会自动设置代码格式。 </p>
<h2><a name="Formatting"></a>格式设置</h2>
<p>要设置一段代码的格式以使其更容易理解,请执行以下步骤:</p>
<ol>
<li>选择相关的代码片段。</li>
<li>单击鼠标右键,然后从上下文菜单中选择 "Format"(格式化代码)或按 Alt+Shift+F 组合键。</li>
</ol>
<h2><a name="BracketCompletion"></a>括号完成</h2>
<p>当用户键入代码时,该编辑器会自动添加和删除匹配的括号和引号。 </p>
<ul>
<li>当用户键入单引号 ' '、双引号 " "、圆括号 () 和方括号 [] 的第一个符号时,将会添加与之配对的符号。</li>
<li>在一行的结尾处,除了添加右单引号或右双引号之外,还会添加分号。</li>
<li>右花括号在用户按 Enter 键后进行添加,此操作也将激活“智能缩进”功能。</li>
<li>删除左单引号、左双引号、左圆括号或左方括号会导致自动删除相应的右侧符号,但不会影响行尾的分号。
<li>当光标指向右圆括号 )、右花括号 } 或右方括号 ] 时,与之配对的左侧符号将以黄色突出显示。 <br> <img alt="括号突出显示" class="margin-around b-all" height="259" src="../../../images_www/articles/72/php/editorguide/bracket-highlighting.png" width="367"></li>
</ul>
<h2><a name="instant-rename"></a>重命名重构和即时重命名</h2>
<p>您可以在项目的所有文件中重命名某个元素,如类名。该功能强制您在进行更改之前预览所做的更改。预览窗口显示元素的每个位置,并允许将元素的个别实例从重命名操作中排除。</p>
<p>与重命名重构对应的旧功能是即时重命名。即时重命名仍然可用,但是只在“非公共”上下文中才起作用,如重命名方法中的变量,或重命名私有变量和字段。即时重命名只用于重命名文件中的元素,而不提供预览窗口。</p>
<p>要使用即时重命名,请将光标置于要更改的名称上并按 Ctrl-R。如果即时重命名应用于该变量,则会突出显示该变量的所有实例或函数名。</p>
<img alt="按 Ctrl-R 后的 PHP 代码编辑器" height="361" src="../../../images_www/articles/72/php/editorguide/refactor-ctrlr.png" width="551">
<p> 在更改名称的一个实例时,将会同时更改文件中的其他所有实例</p>
<img alt="显示重构的变量名的 PHP 代码编辑器" height="359" src="../../../images_www/articles/72/php/editorguide/refactor-afterchange.png" width="551">
<p>要使用重命名重构,请选择要重命名的元素,然后按 Ctrl-R 组合键,或者右键单击并选择 "Refactor"(重构)> "Rename"(重命名)。此时将打开一个对话框,用于重命名该元素。</p>
<img alt="用于重命名变量的对话框" class="margin-around" src="../../../images_www/articles/72/php/editorguide/rename-confirm.png">
<p>重命名该元素,然后按 "Preview"(预览)。"Refactoring"(重构)窗口打开。在该窗口中,您可以查找项目中的每个元素实例,然后决定是否重命名该实例。</p>
<img alt=""Refactoring"(重构)窗口" class="margin-around" src="../../../images_www/articles/72/php/editorguide/refactoring.png">
<p>有关重命名重构的详细信息,请参见<a href="../../docs/php/screencast-rename-refactoring_zh_CN.html">适用于 PHP 的 NetBeans IDE 7.0 中的重命名重构和其他编辑器改进</a>截屏视频。</p>
<h2><a name="CodeCompletion"></a>代码完成</h2>
<p>代码完成是一组用于加快编码过程的功能的公用名称。</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>选择 "Tools"(工具)> "Palette"(组件面板)> "Code Clips"(代码片段)。在右侧面板中显示包含各种用户界面元素的组件面板。</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+空格组合键。将显示一个下拉列表,其中提供了上下文有关建议。提供的每个建议都附带描述和参数提示。当您继续键入内容时,该列表中的内容会随之发生改变。 <br><img alt="函数代码完成" class="margin-around b-all" height="503" src="../../../images_www/articles/72/php/editorguide/function-cc.png" width="523"></li>
<li>要获取当前上下文中可用的 PHP 关键字列表,请在先前未键入任何内容的情况下按 Ctrl+空格组合键。
</li>
<li>要获取关于变量的提示,只需键入美元符号 "$"。将显示当前可用的所有局部变量和全局变量的列表。 <br> <img alt="变量代码完成" class="margin-around b-all" height="476" src="../../../images_www/articles/72/php/editorguide/variable-cc.png" width="437"></li>
</ol>
<h3><a name="abbreviations"></a>代码模板和缩写</h3>
<p>在当前上下文中,术语“缩写”指的是一组预定义的字符串,它们对应于编程语言中使用的关键字。每个缩写都与一个展开的文本相关联,该文本包含完整的关键字以及该关键字的代码模板(带有参数提示)。要应用此功能,请键入一个缩写,然后按 Tab 键。 </p>
<img alt="模板缩写" class="margin-around b-all" height="51" src="../../../images_www/articles/72/php/editorguide/template-abbr.png" width="98"><br>
<p>该缩写将被替换为相应的关键字,并且会提供该关键字的代码模板。</p>
<p><img alt="展开的 cls 模板" class="margin-around b-all" height="167" src="../../../images_www/articles/72/php/editorguide/template-expanded.png" width="269"></p>
<p>在代码模板中,如果光标位于带紫色边框的蓝框中,则光标即位于模板的字段中。键入字段名或值。该字段的所有实例也会更改值。完成后按 Enter,光标将移到下一个字段(或移到 <code>${cursor}</code> 变量所在的位置,或在没有剩余字段时移到模板外部)。
</p>
<img alt="选定了第二个字段的模板" class="margin-around b-all" height="173" src="../../../images_www/articles/72/php/editorguide/template-secondfield.png" width="269">
<p>要查看已定义的缩写以及对应的代码模板的列表,请执行以下操作:</p>
<ol>
<li>选择 <tt>"Tools"(工具)> "Options"(选项)> "Editor"(编辑器)> "Code Templates"(代码模板)</tt></li>
<li>从 "Language"(语言)下拉列表中,选择 "PHP"。将显示 PHP 缩写以及为其定义的代码模板的列表。</li>
<li>要在该列表中添加或删除定义,请分别使用 "New"(新建)或 "Remove"(删除)按钮。</li>
<li>要编辑定义,请选择相关行,然后在该列表下方的编辑字段中编辑文本。 <br> <img alt="缩写以及为缩写定义的代码模板的列表" class="margin-around" height="513" src="../../../images_www/articles/72/php/editorguide/code-template-definitions-list.png" width="536"></li></ol>
<p>有关详细信息,请参见<a href="../../docs/php/code-templates_zh_CN.html">适用于 PHP 的 NetBeans IDE 中的代码模板</a></p>
<h3><a name="cc-constructors"></a>构造函数的代码完成</h3>
<p>键入 <tt>new</tt> 关键字之后,将会显示代码完成窗口,其中包含项目中所有可用类的构造函数和参数。</p>
<img alt="构造函数的代码完成提示" border="1" class="margin-around" height="408" src="../../../images_www/articles/72/php/editorguide/cc-constructor.png" width="600">
<h3><a name="cc-sql"></a>SQL 代码完成</h3>
<p>当某个字符串以 SQL 关键字 "select" 开头时,将会显示 SQL 代码完成。第一步是选择数据库连接。</p>
<img alt="提供数据库连接的代码完成" border="1" class="margin-around" height="384" src="../../../images_www/articles/72/php/editorguide/cc-sql.png" width="475">
<p>将显示在 IDE 中注册的所有数据库连接。</p>
<img alt="注册到 IDE 的所有数据库连接" class="margin-around" height="185" src="../../../images_www/articles/72/php/editorguide/cc-sql-dbconnections.png" width="554">
<p>选择连接之后,SQL 代码完成将提供该数据库连接中的所有表。 </p>
<p><img alt="wishlist 数据库连接中的所有表" border="1" class="margin-around" height="384" src="../../../images_www/articles/72/php/editorguide/cc-sql-tables.png" width="494"></p>
<p>如果表具有表列,则也会显示这些列。</p>
<p><img alt="为表显示的列" border="1" class="margin-around" height="358" src="../../../images_www/articles/72/php/editorguide/cc-sql-columns.png" width="530"></p>
<p>SQL 代码完成也适用于表别名。</p>
<img alt="以旅馆别名显示表的 SQL 代码完成" border="1" class="margin-around" height="352" src="../../../images_www/articles/72/php/editorguide/cc-sql-aliases.png" width="537">
<h3><a name="cc-namespaces"></a>PHP 5.3 名称空间</h3>
<p>代码完成支持 PHP 5.3 中的完全限定、部分限定和非限定的名称空间名称。有关详细信息,请参见我们的<a href="../../docs/php/namespace-code-completion-screencast_zh_CN.html">截屏视频</a></p>
<p>IDE 还帮助您解决缺少的名称空间 <tt>use</tt> 语句。在要修复缺少的 <tt>use</tt> 语句的<em>名称空间内部</em>,右键单击并选择 "Fix Uses..."(修复用法...),或者按 Ctrl-Shift-I 组合键并转到 "Source"(源)> Fix Uses..."(修复用法...)。此时将打开一个对话框,为每个所需的 use 语句提供完全限定的名称。有关详细信息,请参见<a href="https://blogs.oracle.com/netbeansphp/entry/how_to_fix_your_use">如何修复 Use 语句</a></p>
<h3><a name="cc-overridden-methods"></a>覆盖和实现的方法</h3>
<p>类成员之间的代码完成功能可以覆盖或实现方法。</p>
<p><img alt="提供用于覆盖方法的代码完成" class="margin-around" height="478" src="../../../images_www/articles/72/php/editorguide/cc_overriden_methods.png" width="600"></p>
<h3><a name="clever-catch-cc"></a>智能型 Try/Catch 代码完成</h3>
<p>自 NetBeans IDE 7.1 开始,<tt>catch</tt> 语句的代码完成中仅包含从 <tt>Exception</tt> 继承的类。</p>
<p><img alt="在 catch 参数中显示智能型代码完成的编辑器" class="margin-around b-all" height="166" src="../../../images_www/articles/72/php/editorguide/clever-catch-cc.png" width="491"></p>
<h3><a name="annotations">标注</a></h3>
<p>NetBeans IDE 代码完成支持以下类型的 PHP 标注:</p>
<ul>
<li>ApiGen(旧 PHPDoc 标注)</li>
<li>PHPUnit</li>
<li>Doctrine 2(ORM 和 ODM)</li>
<li>Symfony 2</li>
</ul>
<p>每个标注均可与一个上下文关联。NetBeans IDE 可识别四种上下文:</p>
<ul><li>函数</li>
<li>类/接口(类型)</li>
<li>方法</li>
<li>字段</li></ul>
<p>可以通过 "Tools"(工具)> "Options"(选项)> "PHP" > "Annotations"(标注)向代码完成中添加更多标注。</p>
<h3><a name="traits"></a>PHP 5.4 Trait</h3>
<p>Trait 是 PHP 5.4.0 中引入的一种代码重用机制。(有关 Trait 的信息,请参见 <a href="http://php.net/manual/en/language.oop5.traits.php">php.net 文档</a>。)NetBeans IDE 可识别 Trait 语法,并且代码完成包含方法、函数以及继承自 Trait 或在 Trait 中声明的任何其他内容。 </p><img alt="Trait 代码完成" class="margin-around b-all" height="472" src="../../../images_www/articles/72/php/editorguide/php54-traits-1.png" width="435">
</div>
<h2 id="php54">PHP 5.4 支持</h2>
<p>适用于 PHP 的 NetBeans 编辑器提供了许多专用于使用 PHP 5.4 开发的功能。</p>
<ul>
<li><a href="https://blogs.oracle.com/netbeansphp/entry/php_5_4_support_array"> 数组解除引用</a></li>
<li><a href="https://blogs.oracle.com/netbeansphp/entry/php_5_4_support_anonymous"> 匿名对象变量</a></li>
<li><a href="https://blogs.oracle.com/netbeansphp/entry/php_5_4_support_short"> 短数组语法</a></li>
<li><a href="https://blogs.oracle.com/netbeansphp/entry/php_5_4_support_built"> 内置 Web 服务器</a></li>
<li><a href="https://blogs.oracle.com/netbeansphp/entry/php_5_4_support_traits"> Trait 的代码完成</a></li>
<li><a href="https://blogs.oracle.com/netbeansphp/entry/php_5_4_support_minor"> 其他功能</a></li>
</ul>
<h2><a name="rectangular"></a>矩形选择内容</h2>
<p>适用于 PHP 的 NetBeans IDE 7.1 引入了 "Rectangular Selection"(矩形选择)操作。这项编辑功能适用于很多情况,如删除粘贴的代码中的行号。</p>
<p>要启用矩形选择内容,请按 "Rectangular Selection"(矩形选择)开启/关闭按钮或 Ctrl-Shift-R 组合键。</p>
<p><img alt="显示 "Rectangular Selection"(矩形选择)开启/关闭按钮的编辑器" class="margin-around b-all" height="321" src="../../../images_www/articles/72/php/editorguide/rec-selec-togglebutton.png" width="600"></p>
<p>启用 "Rectangular Selection"(矩形选择)时,可以使用鼠标或键盘进行选择。使用键盘时,将脱字号置于一角,按住 Shift,然后使用箭头键选择所需的内容。</p>
<p><img alt="显示所粘贴行号的矩形选择内容的编辑器" class="margin-around b-all" height="289" src="../../../images_www/articles/72/php/editorguide/rec-selec-made.png" width="600"></p>
<p>如果在选择某个区域时编写文本,则该文本将放在选定区域中的每一行上。例如,这对于同时更改类中多个字段的访问修饰符的情况会非常有用。</p>
<p><img alt="访问修饰符已添加到矩形选择内容中的所有行的编辑器" class="margin-around b-top b-right" height="342" src="../../../images_www/articles/72/php/editorguide/rec-selec-addtext.png" width="435"></p>
<h2><a name="phpdoc"></a>ApiGen 支持</h2>
<p>NetBeans IDE 7.2 中添加了对 ApiGen 的内置支持。有关详细信息,请参见截屏视频<a href="../../docs/php/screencast-apigen.html">使用 NetBeans IDE 生成 PHP 文档</a></p>
<p class="alert"><b>警告:</b>PHPDocumentor 不完全支持 PHP 5.3。PHP 文档编制程序未编档名称空间及某些其他 5.3 功能。</p>
<h2><a name="code-generators"></a>代码生成器</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"></a>构造函数</h3>
<p>当脱字号位于类主体中,但不在该主体所包含的任何函数中时,通过按 Alt-Insert 组合键(在 Mac 上为 Ctrl-I 组合键)可以生成构造函数。当选择 "Generate... Constructor"(生成...构造函数)时,将会打开一个对话框,其中列出了可以由构造函数初始化的字段。字段名称将用作构造函数的参数。</p>
<p><img alt="包含使用构造函数初始化的字段的对话框" class="margin-around" height="299" src="../../../images_www/articles/72/php/editorguide/generate-constructor-fields.png" width="352"></p>
<p>您可以决定不选择任何字段。在这种情况下,IDE 生成一个没有参数的空构造函数。如果字段是一个具有属性的类,则可以选择单个属性,也可以选择类;选择类时,将会自动选定该类的所有属性。</p>
<p>有关详细信息,请参见 <a href="http://blogs.oracle.com/netbeansphp/entry/generate_constructor_getters_and_setters" target="_blank">NetBeans PHP 博客帖子</a></p>
<h3><a name="generate-getters-setters"></a>Getter 和 Setter</h3>
<p>当脱字号位于类主体中时,通过按 Alt-Insert 组合键(在 Mac 上为 Ctrl-I 组合键)并选择 "Getter"、"Setter" 或 "Getters and Setters"(Getter 和 Setter),可以生成 getter 和 setter。系统仅显示可能的函数。例如,如果您已经具有可用属性的 setter,则将只显示 getter 选项。</p>
<p>当选择 "Generate... Getter/Setter/Getter and Setter"(生成...Getter/Setter/getter 和 setter)时,将会出现一个对话框,其中包含可为其生成 getter 或 setter 的属性。属性将以树形式显示。如果选择一个父类,则会自动选定该类的所有属性。</p>
<p>您可以按照 getName 或 get_name 约定命名 getter 或 setter。</p>
<p>有关详细信息,请参见原始的 <a href="http://blogs.oracle.com/netbeansphp/entry/generate_constructor_getters_and_setters" target="_blank">NetBeans PHP 博客帖子</a>以及有关<a href="http://blogs.oracle.com/netbeansphp/entry/generating_getters_and_setters_improved" target="_blank">改进的 getter 和 setter 生成</a>的帖子。</p>
<h3><a name="generate-overriden-methods"></a>覆盖和实现的方法</h3>
<p>当脱字号位于类声明中,且存在多个类成员时,通过按 Alt-Insert 组合键(在 Mac 上为 Ctrl-I 组合键)可以生成覆盖和实现的方法。打开的对话框显示了可以插入的方法,并指示它们是否已被覆盖或实现。</p>
<p><img alt="用于生成覆盖的方法的对话框" class="margin-around" height="520" src="../../../images_www/articles/72/php/editorguide/generate_overriden_methods.png" width="523"></p>
<p>此功能弥补了“实现所有抽象方法”提示以及<a href="#cc-overridden-methods">用于覆盖和实现的方法的代码完成功能</a>的不足。</p>
<p>有关详细信息,请参见 <a href="http://blogs.oracle.com/netbeansphp/entry/generate_overriden_implemented_methods" target="_blank">NetBeans PHP 博客帖子</a></p>
</div>
<h2><a name="ParameterHints"></a>参数提示 </h2>
<p>该编辑器会提示用户某个函数或方法在其调用上下文中的形式参数。</p>
<ol>
<li>键入您要调用的函数的开头字符。 </li>
<li>按 Ctrl+空格组合键。将显示一个下拉列表,其中提供了上下文有关建议以及每个建议的形式参数。<br> <img alt="上下文相关提示的列表" class="margin-around" src="../../../images_www/articles/72/php/editorguide/parametr-hint-one.png">
</li>
<li>选择相关建议,然后按 Enter 键。在代码中插入所选函数的名称,并在方括号中显示用于输入参数的模板。 <br> <img alt="所选上下文有关建议的参数提示。" class="margin-around" src="../../../images_www/articles/72/php/editorguide/parametr-hint-two.png">
</li>
</ol>
<h2><a name="vartyp-cmnt"></a>在注释中定义变量类型</h2>
<p>您可以在注释中定义变量及其类型。注释必须采用 <em>/* @<strong>var</strong> $variable type */</em> 格式。如果注释编写正确,则 <em><strong>var</strong></em> 标记会以粗体显示。</p>
<p><img alt="在注释中声明的变量" border="1" class="margin-around" height="319" src="../../../images_www/articles/72/php/editorguide/vardoc-basic.png" width="600"> </p>
<p>您可以使用代码模板 <tt>vdoc</tt>,然后按 Tab 键以生成定义变量的注释。生成注释后,变量名称将处于选定状态,您可以对其进行更改。然后,再次按 Tab 键,将会选定类型。</p>
<p><img alt="声明由 vdoc 模板生成的注释的变量" border="1" class="margin-around" height="269" src="../../../images_www/articles/72/php/editorguide/vardoc-template.png" width="600"> </p>
<p>代码完成会自动设置变量名称和类型。如果在模板插入位置之后使用了某个变量,则默认情况下会建议采用模板后面的该变量名称。如果在模板插入位置之后未使用任何变量,但在模板之前使用了某个变量,则默认情况下会建议采用模板前面的该变量名称。如果 NetBeans IDE 无法在模板使用位置附近找到任何变量,则默认名称为 <em>variable</em>。变量类型会按照相同的规则自动进行设置。</p>
<img alt="声明由 vdoc 模板生成的注释的变量,使用默认变量名称和类型" border="1" class="margin-around" height="385" src="../../../images_www/articles/72/php/editorguide/vardoc-template-names.png" width="600">
<h2><a name="errorMessages"></a>错误消息</h2>
<p>该编辑器会在您键入代码时分析代码的语法,并且会通过对错误行加下划线以及在这些行旁边设置红色圆点来标记语法错误。要获取有关错误的说明,请将鼠标悬停在错误行上,或单击红色圆点。随即出现一个工具提示,其中提供了有关错误的简要说明。 <br> <img alt="错误消息:错误行上的工具提示。" class="margin-around" src="../../../images_www/articles/72/php/editorguide/error-messaging-m1.png">
</p>
<h2><a name="phpunit"></a>PHPUnit 和 Selenium 测试</h2>
<p>适用于 PHP 的 NetBeans IDE 支持 <a href="http://www.phpunit.de" target="_blank">PHPUnit</a> 自动测试,包括代码覆盖率。可以在代码中使用测试组。</p>
<p>NetBeans IDE 还支持将 Selenium 可移植测试框架与 PHPUnit 结合使用。Selenium 插件可以从更新中心获取。安装此插件会将 Selenium 服务器添加到 IDE 的已注册服务器中,并将 Selenium 测试选项添加到 PHP 菜单。</p>
<p>有关更多信息,请参见<a href="../../docs/php/phpunit_zh_CN.html">使用 PHPUnit 和 Selenium 进行测试</a></p>
<h2 id="spellchecker">拼写检查器</h2>
<p>拼写检查器可供使用。在 "Options"(选项)对话框中,可以针对不同语言打开或关闭拼写检查功能。</p>
<p><img alt="拼写检查器的 "Options"(选项)对话框" class="margin-around" height="448" src="../../../images_www/articles/72/php/editorguide/spellchecker-options.png" width="600"></p>
<p>在 "Options"(选项)对话框中,可以添加和删除新字典,并设置语言环境。如果要添加新字典,则必须拥有包含单词的文件。字典文件的格式是单词表,其中每个单词各占一行。您必须为 NetBeans 提供字典文件的编码信息,以及该文件在使用时所对应的语言环境信息。 </p>
<p><img alt="将新字典添加到拼写检查器" class="margin-around" height="180" src="../../../images_www/articles/72/php/editorguide/spellchecker-newdictionary.png" width="600"></p>
<p>如果拼写检查器找到一个字典中所没有的单词,则会在该单词的下面加上红色下划线。拼写检查器还会向该单词中添加工具提示,说明“单词拼写错误”。请注意检查了 PHP 文件中的 HTML 文本。</p>
<p><img alt="在 PHP 文件的 HTML 文本中发现的错误" class="margin-around" height="68" src="../../../images_www/articles/72/php/editorguide/spellchecker-html.png" width="600"></p>
<h2><a name="symfony"></a>Symfony、Symfony2 和 Zend 框架支持</h2>
<p>Symfony、Symfony2 和 Zend 框架支持已内置到 PHP 编辑器中。它识别现有的 Symfony 和 Zend 框架,并且您可以在“新建 PHP 项目”向导的最后一个面板中为新项目添加框架。</p>
<p>在具有 Symfony、Symfony2 或 Zend 支持的 PHP 项目中,可以从项目的上下文菜单中运行 Symfony 或 Zend 命令。</p>
<img alt="显示 Symfony 命令的上下文菜单" class="margin-around" src="../../../images_www/articles/72/php/editorguide/symfony-contextmenu-commands.png">
<p>可以使用命令 UI 执行以下操作:</p>
<ul>
<li>过滤 Symfony/Zend 命令 (1)</li>
<li>指定命令参数 (2)</li>
<li>选择命令 (3)</li>
<li> 查看命令的上下文帮助 (4) </li>
<li>预览将运行的整个命令 (5)</li>
</ul>
<img alt="包含标注的 Symfony 命令的对话框" class="margin-around" src="../../../images_www/articles/72/php/editorguide/symfony-command-dialog.png">
<p>命令列表因项目而异。这意味着,如果用户使用 Doctrine 而不是 Propel,则不会列出 Propel 命令,而仅列出 Doctrine 命令。此外,还可以使用来自项目的 Symfony 插件的所有命令。</p>
<p>代码完成包括 Symfony 视图中的 Symfony 变量、Symfony2 视图中的 Symfony2 变量和 Zend 视图中的 Zend 变量。 </p>
<img alt="代码完成中的 Symfony 变量" border="1" class="margin-around" src="../../../images_www/articles/72/php/editorguide/symfony-variables.png">
<p>IDE 还提供了 Symfony 或 Zend 视图和操作间的导航快捷方式。这些快捷方式在 NetBeans 6.9 中进行了改进。此外,<em>view</em> 模板/文件中的代码完成现在还包括在 <em>controller/action</em> 文件中声明的变量。有关详细信息,请参见 <a href="http://blogs.oracle.com/netbeansphp/entry/framework_support_improvements" target="_blank">NetBeans PHP 博客帖子</a></p>
<p>有关 Zend 框架支持的更多信息,请参见 Zend <a href="../../docs/php/zend-framework-screencast_zh_CN.html">截屏视频</a></p>
<h2><a name="smarty"></a>Smarty 支持</h2>
<p>NetBeans IDE 提供了一个插件,用于支持 Smarty 框架。该支持包括基本的 Smarty 3 功能,即 Smarty 3 代码完成和分隔符。</p>
<p><img alt="显示基本 Smarty 3 支持的编辑器" class="margin-around b-all" height="136" src="../../../images_www/articles/72/php/editorguide/smarty3.png" width="364"></p>
<p>在 "Options"(选项)窗口中,可在 Smarty 3 和 Smarty 2 行为之间进行切换。转至 "Tools"(工具)> "Options"(选项)(在 MacOS 上为 "NetBeans" > "Preferences"(首选项)),并选择 "PHP",然后打开 "Smarty" 标签。必须安装 Smarty 框架插件。</p>
<p><img alt="Smarty 选项" class="margin-around" height="480" src="../../../images_www/articles/72/php/editorguide/smarty-options.png" width="586"></p>
<h2 id="doctrine2">Doctrine2 支持</h2>
<p>如果您已安装 Doctrine2 ORM 及其必备包,则可以将 NetBeans IDE 的代码完成与 Doctrine2 函数一起使用,并且可以从 IDE 运行 Doctrine2 命令。您需要在 IDE 的 "Options"(选项)中设置 Doctrine2 运行脚本的路径,并且 PHP 项目必须启用 Doctrine2。有关详细信息,请参见 NetBeans PHP 博客中的 <a href="https://blogs.oracle.com/netbeansphp/entry/doctrine2_support_added">Doctrine2 Support Added</a>(添加的 Doctrine2 支持)。</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>