Phpstorm 是一款适合 PHP 开发人员的出色 IDE。虽然它不是免费的,但您可以获得非常酷的功能,例如实时模板。
实时模板是为您的编辑器定制的扩展。
PhpStorm 已经为各种上下文提供了有用的扩展,默认情况下包括 PHP。
您可以在“设置”>“设置”中查看编辑>实时模板:
fore 消除了手动输入 foreach 循环的麻烦。
如果您输入 f、fo 或 for,您可能会在列表中排在最前面,但请确保您选择的是 fore 而不是 foreach,这在这里不会发挥作用:
前面输入的时间有点长,但可以更安全地获得所需的模板。它还应该有一个描述(foreach iterable_expr as $value)。
实时模板允许方便地自定义变量名称:
然后,只需按 ⇥Tab 即可展开整个 foreach 块。
注意:我在演示中使用鼠标,但我的想法是坚持使用键盘。
上下文可以更好地组织并减少编辑器中的噪音。
例如,您不需要前展开来编辑 HTML 文件。
这就是为什么这个实时模板仅适用于 PHP:
您可以创建自定义模板组,将实时模板应用于一个或多个组,并定义自定义变量来控制渲染。
您甚至可以定义如何使用键盘扩展模板(例如,Tab、Enter 与空格)。
不要一次又一次地输入相同的结构:
public static function () { }
只需输入 pu 或 pub,选择 pubsf 实时模板,然后按 ⇥Tab:
来源:官方文档 - 实时模板
您可以创建自定义实时模板来满足您的需求。
转到“设置”>编辑>实时模板,选择 PHP 模板组,然后按按钮添加新的实时模板:
您会得到类似以下内容:
特别注意名为“适用上下文”的复选框(此处为“PHP 语句”)。
如果您在编辑器中没有看到实时模板,可能是因为您忘记配置某些内容或者您的案例与任何选中的项目都不匹配。
通过此设置,您可以获得高级粒度,因此相应地更改适用的上下文以使您的扩展工作。
让我们添加一个实时模板来添加 override 属性(PHP 8.3),这意味着如果一个方法显式重写其父类,而父类没有该方法(不再),则会触发错误:
现在,当您在编辑器中输入内容时,您会获得 override 属性,这消除了手动编写的麻烦。
PhpStorm 使用 XML 保存它:
public static function () { }
虽然这不是详尽的列表,但这些预定义变量很重要:
Variable | Description |
---|---|
$END$ | Caret position after editing variables |
$SELECTION$ | Denotes the code fragment to be wrapped in surround templates |
$RETURN_TYPE$ | Return type of the function or method |
来源:文档 - 预定义变量
$SELECTION$ 用于更高级的用法。需要创建环绕模板:
public static function () { }
注意:请阅读文档以正确配置您的环绕模板(您必须编辑变量)。
还记得我们刚刚在 fore 中看到的 $item 变量吗?
即时修改名称非常方便,不是吗?
要了解其工作原理,只需编辑模板变量并检查关联的表达式:
内置表达式允许非常高级的自定义,例如智能自动完成、名称建议,甚至正则表达式。
您可以右键单击列表中的任何实时模板来复制它。如果您检查剪贴板,您将看到类似于以下 XML 的内容:
<template name="over" value="#[\Override]" description="add override attribute" toReformat="true" toShortenFQNames="true"> <context> <option name="PHP" value="true" /> </context> </template>
从现有模板开始一个新的实时模板非常有用。
但是,在这种情况下,您宁愿使用重复按钮(位于删除按钮“-”右侧):
PhpStorm 将实时模板以 XML 文件形式存储在 IDE 配置目录的 templates 目录中:请参阅 idea.config.path。
复制粘贴可能没问题,但您可能想同步这些片段。例如,如果您为所有团队成员维护和共享通用模板。
您还可以手动导出和导入所有实时模板。
注意:请阅读本节以了解设置。
您可以使用AI工具或启用JetBrain AI助手(插件),以便IDE可以根据您的使用情况进行预测。
不过,请先阅读隐私政策:
JetBrains AI 服务可以收集与 AI 功能使用相关的两类数据:行为数据和详细数据。这两种类型的数据收集都完全由用户控制。
来自 JetBrains AI Service 的数据被发送给第三方语言模型提供商
我完全理解人工智能的炒作,它在重复性任务方面做得很好。
根据我迄今为止的经验,实时模板更加一致,并且不容易产生幻觉。
请注意,这并不意味着您不能组合这些工具,但请在按 ⇥Tab 之前仔细检查 AI 建议。
以下是实时模板 (PHP) 的一些用例:
即使是每天使用 PhpStorm 的开发团队,这个功能也被低估了。
享受实时模板并按 ⇥Tab ?
以上是PHP:跳过无聊的部分并按 Tab!的详细内容。更多信息请关注PHP中文网其他相关文章!