此重大更新的亮点包括:
JetBrains 的 AI Assistant 现已全面推出,搭载大量新功能和改进,助力提高您在 JetBrains IDE 中的工作效率。
AI Assistant 现在可以为您生成多行代码块。在新行开始输入,如果有 LLM 建议,就会出现一个灰显的代码段。按 Tab 接受建议。
目前,此类建议可在类上下文或函数定义内使用。
AI Assistant 还可以为类方法生成测试。将文本光标置于您希望通过单元测试覆盖的类方法上,按 Alt+Enter,选择 AI Assistant,然后选择 Generate Unit Tests(生成单元测试)。
以前,您可以使用 AI 聊天生成代码段。新增的 AI Assistant | Generate code…(AI Assistant | 生成代码…)操作可以直接在编辑器中打开提示框。您可以输入要生成的代码的描述。随后,AI Assistant 将提供建议,您可以接受部分或全部建议。
有时,执行 PHP 脚本或运行配置或者运行 Composer 操作时,作业会由于某种原因失败。 AI Assistant 可以帮助您确定问题的根本原因。点击堆栈跟踪或错误消息中的 Explain with AI(使用 AI 解释)按钮即可获取 AI 生成的解释。
Use AI Assistant in PhpStorm as a supplemental feature with a JetBrains AI Service subscription.
PhpStorm 现在支持 Pest 测试框架,无需额外配置。我们最近与 Pest 插件 的原作者达成一致,接手其开发并将其打包到 PhpStorm 中。您可以在 我们最近的博客文章 中阅读详细信息。
就像 PHPUnit 测试一样,Pest 测试现在可以直接从 PhpStorm 运行。将文本光标放入测试并触发运行窗口时,将为特定测试创建运行配置。您可以将文本光标置于文件中,而不是具体测试中,以触发该文件中的所有测试。
借助新的 Pest 支持,您可以在 $this 上调用函数或方法来编写断言。这还改进了测试函数中的自动补全,让您可以在输入时查看可用断言。
在 Pest 中,您可以编写自定义期望来减少测试中的样板检查。 PhpStorm 可以帮助您找到自定义期望的用法并帮助您重命名。
PhpStorm 2023.3 完全支持 PHP 8.3。 IDE 中的大部分更改都将有机集成到您的 PhpStorm 工作流中,几乎不会引起波动,因此我们只会提及您需要了解的新功能。
#[\Override] 特性 PHP 8.3 引入了新的 #[\Override] 特性。重写方法时,它可以明确显示您的意图。 PHP 引擎能够检查标有 #[\Override] 的方法是否实际上重写了父方法,如果未重写,则抛出异常。 PhpStorm 2023.3 会提前发出有关此类情况的警告。
PhpStorm 还建议在适用时添加 #[\Override] 特性。
json_validate() 函数 PHP 8.3 向标准库添加了新的 json_validate() 函数。此前,验证字符串是否为有效 JSON 的唯一方式是对其进行解码并检测是否抛出错误。 PhpStorm 可以检测这些模式,并建议通过 json_validate() 函数调用替换。与解码字符串相比,它使用的内存更少,因此有助于确认输入是否为有效 JSON。
在 PHP 8.3 中,您可以声明类常量的类型。除 void、callable 和 never 之外的所有类型声明都可以使用。
对于类型化类常量,PhpStorm 提供:
PHP 8.3 弃用了一定内容,PhpStorm 为您提供了相应的检查来发现它们。
PhpStorm 2023.3 为 Symfony 开发者带来了多项改进。
适用于 Symfony 的新内置项目初始化程序允许您直接从欢迎屏幕新建具有所需类型和版本的 Symfony 项目。
现在,您可以在 QueryBuilder 方法调用中享受对 DQL 的完整 IDE 支持。功能包括高亮显示、字段补全、目标模型类解析等。
在 PHP 8.0 引入属性后,Doctrine 注释将被弃用,并且 将很快被移除。为了帮助您进行切换,PhpStorm 2023.3 包含了将 Doctrine 注解转换为特性的功能。
PhpStorm 还支持将 Symfony 注解转换为其对应特性,例如 #[Required]、#[Route] 等。
我们添加了排除来自索引库的目录的实验性新功能。从项目中排除此类文件有助于避免多重定义问题和提高索引性能。
我们持续改进泛型的使用体验。在 PhpStorm 2023.3 中,现在可以为泛型设置颜色编码,使泛型类型更易区分。
随着特性采用的增加,有时会难以阅读来自给定框架的带有长多行特性注解的代码。在 PhpStorm 2023.3 中,这应该不再是问题,您现在可以折叠多行特性。
PHPUnit 10 引入了对属性的支持,用于向测试类和测试方法添加元数据,以及被测试的代码单元。我们已经实现了检查和快速修复,帮助您从旧的 PHPDoc 注解迁移到这种新样式。
PhpStorm 2023.3 引入了一种改进的更改审查方式。现在,您可以在单个可滚动框架中查看来自更改集的所有已修改文件,无需逐一查看每个文件。新的差异查看器可从 Git Log(Git 日志)工具窗口访问,目前可与 JetBrains Space 审查配合使用。我们正在研究使其与 GitLab 和 GitHub 兼容。
PhpStorm 2023.3 的新 Run to Cursor(运行到光标)嵌入选项允许您在调试时快速执行到特定代码行。程序挂起后,您可以将鼠标悬停在要执行到的代码行上,然后使用 Run to Cursor(运行到光标)弹出窗口。将文本光标置于所需行上后调用键盘快捷键 Alt + F9 也可以实现相同的效果。
为了响应大家对新 UI 的反馈,使用 IDE 的默认查看模式时主工具栏现在可以隐藏,与旧 UI 相同。要移除工具栏,首先选择 View | Appearance(视图 | 外观),然后取消选中 Toolbar(工具栏)选项。
随着 PhpStorm 2023.1 的发布,我们引入了保存多个工具窗口布局并在它们之间切换的功能,增强了工作区的可自定义程度。在 PhpStorm 2023.3 中,我们通过引入 Default layout(默认布局)选项扩展了此功能,提供了将工作区的外观还原为默认状态的快速方式。此布局不可自定义,位于 Window | Layouts(窗口 | 布局)下。
为了使同时在编辑器中处理多种文件类型更为轻松,我们为编辑器标签页默认引入颜色编码,反映其在 Project(项目)工具窗口中的外观。
PhpStorm 包含 WebStorm 功能,现已解决添加 import type 语句时出现的不一致,并使 verbatimModuleSyntax 更易用。我们添加了用于配置 TypeScript import type 语句类型的选项。我们还为 TypeScript 文件改进了 package.json 的 exports 字段的行为。
现在,将 HTML 代码粘贴到 JSX 文件中时,PhpStorm 不仅将转换特性,还会自动为您关闭单个标记。您可以在 Settings | Editor | General | Smart Keys | JavaScript(设置 | 编辑器 | 常规 | 智能按键 | JavaScript)下配置此选项。
@property 支持
为了支持用于创建自定义 CSS 属性的新 @property API,PhpStorm 2023.3 现已提供用于明确定义 CSS 自定义属性的检查和补全功能,允许您检查和限制属性类型、建立默认值,以及确定自定义属性的继承可能性。
我们添加了对 defineSlots 的支持,为 slot 名称提供补全和导航,以及 Rename(重命名)重构。我们还通过 defineExpose 为属性引入补全支持。在 PhpStorm 2023.3 中,组件需要的 import 将根据 defineOptions 函数指定的名称添加。