适用于 PHP 的 NetBeans IDE 中的代码模板

定义的 PHP 代码模板

要查看在 NetBeans 中定义的代码模板,请打开“工具”>“选项”(在 Mac 上,打开 "NetBeans" >“首选项”),选择“编辑器”功能,然后选择“代码模板”标签。要查看 PHP 代码模板,请在“语言”下拉列表中选择 "PHP"。将显示一个表,其中包含代码模板缩写和展开的文本。如果在该表中选择一个代码模板,将在“展开的文本”标签中显示它的展开文本。

“选项”窗口中的 PHP 代码模板,并选择了 cli 模板

在该图中,选择了新类 (cls) 代码模板,您可以在“展开的文本”标签中看到该模板展开后的内容。在下一节中,将使用 Tab 功能在代码中展开该模板。

注意:PHP 代码模板语法部分讲述了新类 (cls) 代码模板的语法。

使用 PHP 代码模板

可以使用三种方法在 PHP 代码中插入代码模板。每种插入代码模板的方法适用于不同的情况。插入代码模板的三种方法是:

在插入模板后,IDE 可帮助您在展开的模板代码中编辑参数

使用缩写 + Tab 键展开代码模板

再次查看“选项”对话框中的“代码模板”标签。底部有一个下拉字段,用于选择“展开模板”组合键。这是在键入代码模板缩写后按下的组合键,以便展开代码模板。缺省情况下,将选择 Tab 键,但您可以选择其他组合键。

“展开模板”下拉框

本节的其余部分假定在“展开模板:”字段中选择了缺省 Tab 键。

如果模板缩写也是代码完成关键字的一部分,则可能很难展开该缩写。在这种情况下,使用代码完成插入模板会更容易一些。

要使用缩写 + Tab 键展开新类代码模板,请执行以下操作:

  1. 创建一个空 PHP 文件。
  2. 在该文件的 PHP 块中,键入 cls,然后按 Tab 键。将展开 cls 代码模板。

    注意:应正确拼写缩写!如果拼错缩写,将无法展开缩写。

    展开代码模板
  3. 将自动选择占位符类名 (class_name)。您可以立即键入所需的类名,该名称将覆盖占位符。在完成后,按 Enter 键,IDE 将选择第一个函数的名称,此处为构造函数。

    注意:占位符名称部分详细讲述了占位符名称。

    在编辑类名后选择构造函数名称
  4. 编辑函数名称或接受缺省值。再次按 Enter 键,光标将移到函数主体内部。在实际情况下,您现在将开始对函数和类的其余部分进行编码。

    最终的光标位置是由 ${cursor} 参数决定的。保留的名称部分中介绍了该参数。

使用代码完成插入代码模板

要使用代码完成插入代码模板,请键入展开的代码片段的开头(而不是模板缩写)。将打开“代码完成”对话框,其中显示了代码片段。

使用代码完成插入新类代码模板:

  1. 在 PHP 文件的 PHP 块中,键入 cla
  2. 等待“代码完成”对话框打开。
  3. 找到新类模板,将列出该模板的缩写 (cls)。PHPDoc 框架显示了展开的模板。
    显示新类模板的“代码完成”对话框
  4. 单击新类模板。IDE 将在代码中插入该模板。
  5. 将自动选择占位符类名 (class_name)。您可以立即键入所需的类名,该名称将覆盖占位符。在完成后,按 Enter 键,IDE 将选择第一个函数的名称,此处为构造函数。
    在编辑类名后选择构造函数名称
  6. 编辑函数名称或接受缺省值。再次按 Enter 键,光标将移到函数主体内部。在实际情况下,您现在将开始对函数和类的其余部分进行编码。

将代码包含在模板中

您可以将代码包含在以下 PHP 模板中:

  • while
  • do
  • switch
  • if / elseif
  • try & catch
  • foreach
  • for
  • ob_start & ob_end_clean

要将代码包含在模板中,请选择代码,然后打开“以...围绕”对话框。要打开“以...围绕”对话框,请按 Alt-Insert 组合键,或者单击提示 提示图标 图标。

将代码包含在 if(true) 模板中:

  1. 使用变量 $a = true$b = 10 创建一个 PHP 块。
    <?php
    $a = false;
            
    $b = 10;
    ?>
  2. 选择 $b = 10;
    选择了变量 $b = 10
  3. 双击提示 提示图标 图标,或者按 Alt-Enter 组合键。将打开“以...围绕”对话框。
    打开“以...围绕”对话框
  4. 单击“以 if{true){... 围绕”。
    “以...围绕”对话框,并选择了“以 if(true) 围绕”
  5. IDE 将 $b = 10; 行包含在 if(true){... 模板中。
    插入了 if (true) 模板

IDE 自动插入前面最近的适合变量作为 if 语句的条件。此处,该变量是 $a,这是因为 $a 是布尔型变量,并且 if(true){} 语句将布尔型变量作为其条件。再者,如果 IDE 插入到条件中的变量不是正确的变量,则会自动选择该条件以进行编辑。这意味着,您可以在插入模板后立即开始键入正确的变量。在这种情况下,代码完成可以帮助您选择正确的变量。

注意:提示定义的参数部分详细介绍了 if(true){} 模板。

通过代码完成选择要用作条件的变量

按 Enter 键以退出语句的条件。光标将移到相应的位置,此处为 $b = 10; 行的末尾。您可以编辑条件并按 Enter 键,或者接受自动插入的条件并按 Enter 键。对于这两种情况,光标将退出条件并移到相应的位置。

未编辑后的光标编辑后的光标

下一节包含在展开的模板中编辑参数的详细信息。

在展开的模板中编辑参数

在介绍将模板插入到代码的部分中,您了解了在展开新类模板时 IDE 如何自动选择类名以进行编辑,以及在展开 if(true) 模板时 IDE 如何自动选择条件名称以进行编辑。现在,您将了解 IDE 帮助您在展开的模板中编辑参数的一些其他方法。

同时编辑参数的多个实例:

  1. 在一个空 PHP 块中,键入 for,然后按 Ctrl-空格键以打开代码完成。选择迭代模板(缩写为 iter),然后单击该模板。将在代码中插入一个新迭代。
    显示选择了迭代模板的代码完成
  2. 迭代将以下两个变量作为参数:$index$array。将自动选择 $index 以进行编辑。
    插入了带有参数的迭代行,并选择 $index 参数以进行编辑

    键入 i$index 的所有三个实例将变为 $i

    插入了迭代行,并将 $index 参数更改为 $i
  3. 按 Enter 键。将选择 $array 参数。
  4. 再次按 Enter 键。光标将进入迭代的方法主体。

通过使用 NetBeans 中的变量名称重构功能,您只需编辑变量名称的一个实例即可更改它的所有实例。由此看出,在应用于模板参数时,该功能是多么有用!

NetBeans IDE PHP 编辑器也可以帮助确定变量的正确方法。

将模板中的变量与正确的方法相关联:

  1. 在一个空 PHP 块中,键入以下代码:
    <?php
    
    $arr = array(new ArrayIterator($array()), new ArrayObject($array()));
    
    ?>
  2. 在声明 $arr 数组的行后面,键入 fore,然后使用代码完成插入 foreach 模板(缩写为 fore)。
    用于插入 foreach 模板的代码完成
  3. 将光标放在 foreach 函数主体中(可以按两次 Enter 键以将光标移到此处)并键入 $value,或者仅键入 $ 并从代码完成中选择 $value
    <?php
    
    $arr = array(new ArrayIterator($array()), new ArrayObject($array()));
    
    foreach ($arr as $value) {
        $value
    }
    
    ?>
  4. $value 后面,键入 ->。代码完成为您提供了 $value 变量的正确方法,该变量是从 $arr 数组派生的。
    $value 变量的代码完成,其中 $value 是数组迭代器方法

PHP 代码模板语法

NetBeans IDE 为支持的所有语言提供了代码模板。某些语法适用于所有语言。其他语法是某种语言特有的。在本节中,您将了解最相关的通用模板语法以及 PHP 模板特有的语法。

PHP 代码模板可以包含 PHP 代码和模板参数。PHP 模板可以仅包含 PHP 代码,仅包含参数或同时包含代码和参数。

代码模板参数语法是美元符号 $,后跟用花括号 {...} 括起来的参数定义。在该语法中,模板参数采用以下四种形式之一:

以下几节讲述了每种形式的代码模板参数。

注意:$$${VARIABLE...} 有时,您会在 PHP 代码模板中看到语法似乎为三个美元符号,后跟花括号 $$${...}。在这种情况下,代码模板包含变量及其名称。此处的语法是转义的美元符号,记为两个美元符号 $$,后跟变量名称参数 ${VARIABLE...}。例如,catch ${Exception} $$${exc} 代码模板展开为 catch Exception $exc

占位符名称


在最简单的情况下,代码模板参数是一个任意占位符值。在展开模板时,IDE 选择该占位符名称以进行编辑。


例如,请考虑本教程的定义的 PHP 模板使用缩写 + Tab 键展开代码模板部分中介绍的新类模板 (cls)。新类模板的展开文本以 class ${className} 开头。此处,class 一词是 PHP 代码,${className} 是一个参数。该参数只是类名的任意占位符值。当 IDE 展开模板时,${className} 将变为 class_name。IDE 知道 class_name 只是一个占位符值,因此,自动选择该值以进行编辑。

展开代码模板

保留的名称

IDE 保留两个参数名称以作为操作指令。

  • ${cursor} 定义在展开的模板中编辑完所有自动选择的值后的光标位置。
  • ${selection} 定义编辑器选择内容的粘贴位置。只要用户在编辑器中选择文本,所谓的“选择模板”(显示为提示)就会使用该参数。如果模板包含 ${selection},它通常指与 ${cursor} 相同的位置。

例如,请再次考虑新类模板 (cls),本教程的定义的 PHP 模板和使用缩写 + Tab 键展开代码模板部分中有介绍。它包含两个占位符名称参数:${ClassName}$__construct。在函数主体中,它包含 ${cursor}${selection} 参数。

class ${ClassName} {

    function ${__construct} {
        ${selection}${cursor}

    }

}

在展开模板后,将自动选择 class_name 占位符 (1)。按 Enter 键,将自动选择 __construct 占位符 (2)。没有要编辑的其他值。再次按 Enter 键,光标将移到模板文本中的 ${cursor} 指示的位置 (3)。

三个代码片段,显示光标位置从占位符名称更改为占位符名称,再更改为 ${cursor} 位置

提示定义的参数


参数可以包含一个全部大写的任意描述性名称以及一个或多个提示。


${PARAMETER_NAME hint1[=value] [hint2...hint n]}

名称不会显示在代码中的任意位置。不过,如果要在代码模板中多次使用参数,这是非常有用的。您只需第一次定义参数,以后按名称引用该参数即可。例如,在下面的代码模板中,仅第一次定义了 ${CONLINK} 参数,以后两次按名称引用该参数。


$$${CONLINK newVarName default="link"} = mysql_connect('localhost', 'mysql_user', 'mysql_password');  
if (!$$${CONLINK}) {
      die('Could not connect: ' . mysql_error());  
}  
echo 'Connected successfully';  
mysql_close($$${CONLINK});  
${cursor}  

在 IDE 展代码模板时,提示可帮助 IDE 计算模板参数的值。例如,请查看 if(true) 模板,本教程的将代码包含在模板中部分中使用了该模板。该模板的展开文本是

if (${CONDITION variableFromPreviousAssignment instanceof="boolean" default="true"}) {
    ${selection}${cursor}
}

查看 ${CONDITION variableFromPreviousAssignment instanceof="boolean" default="true"} 参数。该参数设置 if 语句的条件。因此,该参数命名为 CONDITION。第一个提示是 variableFromPreviousAssignment,第二个提示是 instanceof="boolean"。这两个提示共同指示 IDE 在代码模板前面的代码中查找分配的最接近布尔型变量。请添加第三个提示 default="true",该参数将条件设置为“如果前面的最接近布尔型变量值为 true”。

例如,如果将以下代码片段中的 $b = 10 行包含在 if(true) 代码模板中...

Snippet $a = false $b = 10

...IDE 将查找以前分配的最接近布尔型变量,结果找到了 $a,并使用 $a[=true] 条件生成一个 if 语句。将自动选择该条件以进行编辑,因此,PHP 程序员可以将 $a 更改为其他变量或 !$a

展开了 if $a=true then $b=10 模板,并选择 $a=true 条件以进行编辑

下表列出了 PHP 代码模板中使用的提示以及提示说明。

提示描述
newVarName参数值应该为全新的未使用变量名称。通常与 default 一起使用。
default=""参数的缺省值。
instanceof=""参数中定义的 PHP 变量类型。
variableFromPreviousAssignment参数值是以前分配的最接近变量。通常与 instanceofdefault 一起使用。
variableFromNextAssignmentName参数值是在代码模板后面分配的最接近变量的名称。通常与 default 一起使用。
variableFromNextAssignmentType参数值是在代码模板后面分配的最接近变量的类型。通常与 default 一起使用。
editable=false在展开模板后,无法编辑参数值。

预定义的参数

NetBeans 提供了一些预定义参数,可以在创建代码模板时使用这些参数。您可以在模板管理器中预定义其他参数。还要注意更改 ${date} 变量格式的特殊规则。

  • ${date} 按以下格式插入当前日期:Feb 16, 2008。
  • ${encoding} 插入缺省编码,例如:UTF-8。
  • ${name} 插入文件名称。
  • ${nameAndExt} 插入文件名称及其扩展名。
  • ${package} 插入创建文件时所在的 Java 包的名称(仅限 Java)。
  • ${time} 按以下格式插入当前时间:7:37:58 PM。
  • ${project.license} 根据值(如 "CDDL")查找许可证标题,并将其插入到模板中。
  • ${project.name} 插入项目名称。
  • ${project.displayName} 插入项目显示名称。
添加参数定义

您可以在模板管理器中定义其他参数。

定义参数:

  1. 在 IDE 菜单栏中,导航到“工具”>“模板”。将打开模板管理器。
    显示 User.properties 位置的模板管理器
  2. 展开“其他”类型。双击“属性”。将在编辑器中打开 User.properties 文件。
  3. 定义一个参数。例如,定义 ${user} 参数以将您的名字添加到创建的模板中。语法为
    user=LorumIpsum@mycompany.com

    在展开代码模板时,该模板中的所有 ${user} 实例将替换为 "LorumIpsum@mycompany.com"。

  4. 使用语法 name=value 添加所需的其他参数。

参数定义遵循 FreeMarker Java 模板语言的规定。有关详细信息,请参见有关 FreeMarker 的 NetBeans Wiki 页

设置 ${date} 参数的格式

${date} 变量类型为 "String" 而不是 "Date"。必须将 ${date} 强制转换为 Date 类型才能更改其格式。例如,要仅显示年份,请在代码模板中键入以下内容:

${date?date?string("yyyy")} 

创建您自己的代码模板

可以在 NetBeans IDE 中创建您自己的代码模板。本节介绍了如何创建代码模板,讲述了其语法并建议了一些可创建的有用模板。

创建代码模板:

  1. 打开“工具”>“选项”(在 Mac 上,打开 "NetBeans" >“首选项”),选择“编辑器”功能,然后选择“代码模板”标签。
    “选项”窗口中的 PHP 代码模板,并选择了 cli 模板
  2. 单击模板表右侧的“新建”按钮。将打开“新建代码模板”对话框。键入所需的模板缩写,然后单击“确定”。
    要求输入模板缩写的“新建代码模板”对话框
  3. 将在代码模板表中添加一个新行。该行仅包含您提供的缩写。光标位于“展开的文本”标签中,IDE 自动将光标放在该位置。您可以立即开始键入模板的代码。

    注意:要了解代码模板的展开文本的语法,请参见 PHP 代码模板语法部分。

    键入新 abb 模板的展开文本

以下几节介绍了创建您自己的 PHP 代码模板的一些用例。如果您要建议任何其他用例,请在 PHP 用户论坛中与社区用户进行分享。

用例:将 PHP 插入到 HTML 中

如果经常将 PHP 代码片段插入到 HTML 块中,您可以创建一个 HTML 代码模板以插入 PHP,而无需反复键入 <?php ?>

以下代码模板将 PHP echo 语句插入到 HTML 中。

Language:HTML
缩写:php
展开的文本:
<?php echo ${cursor}   ?>

显示 html 模板中的新 php 的“选项”窗口

用例:Joomla

代码模板可帮助您在 NetBeans IDE 中使用 PHP 框架,尤其是没有内置支持的框架。下面是一个用户开发的代码模板,以便与 Joomla 一起使用。

Language:PHP
缩写:joomdef
展开的文本:
defined('_JEXEC')
   	or die('Restricted access');
${cursor}  

包含新 joomdef 代码模板的“选项”对话框

用例:MySQL 连接

PHP 开发者经常需要创建到 MySQL 数据库的连接。该代码模板将为您创建一个连接。分配给 MySQL 连接的变量具有占位符名称 link。请注意使用了三个美元符号 $$$ -- 实际上是两个美元符号(在展开时生成单个美元符号),后跟变量名称的参数。

Language:PHP
缩写:my_con
展开的文本:
$$${CONLINK newVarName default="link"} = mysql_connect('localhost', 'mysql_user', 'mysql_password');  
if (!$$${CONLINK}) {
      die('Could not connect: ' . mysql_error());  
}  
echo 'Connected successfully';  
mysql_close($$${CONLINK});  
${cursor}  

用于 MySQL 连接的新代码模板

用例:Zend 控制器中的操作

您可以使用代码模板在 Zend 框架控制器中插入操作(如 indexController{}),而不是使用 NetBeans 向导创建操作。

Language:PHP
缩写:zf_act
展开的文本:
public function ${functionName}Action () {
      ${selection}${cursor}  
}  

新 Zend 操作代码模板

用例:Zend 窗体元素

该模板在 Zend 窗体中插入元素。在调用 Zend create form <name> 命令以生成窗体后,请使用该模板。

Language:PHP
缩写:zf_element
展开的文本:
$$${ELEMENT newVarName default="element"} = new Zend_Form_Element_Submit('submit', array('label' => 'Send data to server'));  
$$this->addElement($$${ELEMENT});  
${cursor}  
在 ZF 窗体中插入 Zend 框架元素的新代码模板

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值