PhpStorm 2022.1 最新变化

PhpStorm 2022.1 是一项重大更新,具有对多行和嵌套数组形状的支持、就地 Extract Method(提取方法)重构以及对 Blade 模板、WordPress、PHP 中泛型的增强支持等。

多行和嵌套数组形状

自 PhpStorm 2021.2 起,我们添加了 PHPDoc 块中对数组形状的支持。 但是,只有单行和单级注解受到支持。

在 PhpStorm 2022.1 中,我们在 PHPDoc 和 #[ArrayShape] 特性中添加了对多行和嵌套数组形状的完全支持!

添加数组形状注解可获得键的代码补全和推断简单数组数据结构或类对象数组中的值类型。 您可以在 PhpStorm 中使用 PHPDoc 和 Attribute 语法。 在返回类型和形参类型中,该语法均受到支持。

就地 Extract Method(提取方法)重构

Extract Method(提取方法)是 PhpStorm 中最常用的重构之一。 要简化代码和创建新方法,只需选择一段代码并按 ⌘⌥M (Cmd+Alt+M / Ctrl+Alt+M)。

此前,这将打开重构配置的对话框。 由于弹出窗口不是很受欢迎,现在,大多数情况下您都可以对提取方法使用就地重构。

不会再出现对话框,并且新方法(或函数)会在编辑器中立即创建。 光标将激活,用于编辑新方法的名称。

增强了对 Laravel Blade 模板的支持

此前,PhpStorm 将 Blade 模板中的每个代码块视为一个独立范围。 这常常导致代码补全和洞察方面的问题。

在 PhpStorm 2022.1 中,我们大幅重做了 IDE 处理 Blade 模板的方式。 因此,您将在 .blade.php 文件中获得显著改进的代码补全。

Blade 模板中代码补全和格式设置的许多问题都得到了解决。 了解详情

针对 WordPress 的改进

对带有 `get_template_directory_uri()` 的动态路径的支持

在 PhpStorm 中,您可以在文件路径上按 并点击(按 Ctrl 并点击),在编辑器中打开相应的文件。 此前,当部件与 WordPress 函数组合时,这不适用于 WordPress 代码中的动态路径。

在此版本中,我们添加了对路径中 get_template_directory_uri() 函数的支持。 未来更新将支持更多函数。

从挂钩调用跳转到注册

WordPress 挂钩系统功能强大,但是此前从调用挂钩的位置无法跳转到声明处理程序的位置。

现在,调用左侧有一个装订区域图标。 点击可查看挂钩用法列表,包括注册和其他调用。

新的高级 PHP 元数据功能

如您所知,PhpStorm 除了内置“代码感知”功能外,还具有外部代码知识。 这些知识以 .phpstorm.meta.php 文件的形式呈现。 您可以使用它来教授 PhpStorm 有关代码库的更多信息,从而改进补全。

对 magic __call 和 __callStatic 的支持

此前,如果您依赖魔术方法 _call_callStatic,您将丢失这些方法的代码补全,因为它们未被定义。

在此版本中,您可以添加相应的元数据条目并获得此类调用的自动补全。

您还可以自动处理动态调用,从形参值接收特定的方法名称。

支持联合类型

您现在可以在 .phpstorm.meta.php 中将联合类型指定为 @|MyClass,这样可以改进模拟的编码辅助。

文档中详细了解其他元数据功能。

改进对注解和泛型的支持

我们继续改进对 PhpStorm 中基于注解的泛型的支持。 在此版本中,我们覆盖了更多情况,包括但不限于:

  • @psalm-import-type, @phpstan-import-type
  • @psalm-trace, @phpstan-trace
  • @method 标记中的泛型

新的 Composer Project(Composer 项目)向导

现在,创建新的空项目时,您可以选择自动为其生成一个 composer.json 文件并提供所需依赖项。 创建项目后,PhpStorm 会提示您安装。

用户体验

新的 Notifications(通知)工具窗口

我们将 Event Log(事件日志)实例替换为一个新的 Notifications(通知)工具窗口。 这可以帮助您更好地概括了解 IDE 的通知,确保您不会错过任何重要信息。 新工具窗口默认位于 IDE 窗口的右下角。 所有通知分为两类:Suggestions(建议)和 Timeline(时间线)。

更新了 Structural Search and Replace(结构化搜索和替换)对话框

从主菜单 Edit | Find | Search Structurally(编辑 | 查找 | 结构化搜索…)调用 Structural Search and Replace(结构化搜索和替换)

重新设计的 Structural Search and Replace(结构化搜索和替换)对话框包含所有模板的列表,可以实现更轻松的导航。

我们还在 Structural Search and Replace(结构化搜索和替换)对话框的右上角添加了 Pin Dialog(固定对话框)图标。

平均拆分标签页

您可以在编辑器标签页之间均匀分配工作空间,使其具有相同的宽度。 启用 Settings / Preferences | Advanced Settings | Editor Tabs | Equalize proportions in nested splits(设置 / 偏好设置 | 高级设置 | 编辑器标签页 | 在嵌套拆分中平衡比例)。

将 UML 图表导出为其他格式

UML 图表现在可以导出为 yEd .graphml、JGraph .drawio、Graphviz .dot、Mermaid .md、Plantuml 和 IntelliJ IDEA .uml 文件,从而与第三方工具兼容。

针对 Markdown 的改进

从 Markdown 文件运行命令

README 文件通常会描述运行应用所需的步骤,并列出需要使用的命令。 在 PhpStorm 2022.1 中,只需点击命令左侧装订区域中的 Run(运行)图标,即可直接从 Markdown 文件运行这些命令。

Markdown 的 Copy code snippet(复制代码段)

我们还向 Markdown 块添加了 Copy code snippet(复制代码段),让您可以快速地将内容复制到剪贴板。

更新了 Markdown 编辑器浮动工具栏

我们重做了文本选区上的浮动工具栏,使 Markdown 文件的格式化更加简单。 除了新设计之外,工具栏现在还将提供列表创建功能和用于选择标题样式的菜单。

您可以使用所需选项自定义工具栏。 请转到 Settings / Preferences | Appearance & Behavior | Menus and Toolbars | Markdown Editor Floating Toolbar(设置 / 偏好设置 | 外观与行为 | 菜单与工具栏 | Markdown 编辑器浮动工具栏)。

VCS

更新的 Annotate with Git Blame(使用 Git 追溯注解)

我们改进了 Annotate with Git Blame(使用 Git 追溯注解)功能,使引入的更改更易于调查。 将鼠标悬停在注解上时,IDE 会在编辑器中高亮显示行中的差异,点击后,它会打开 Git Log(Git 日志)工具窗口。

拉取请求注释中的建议更改

现在您可以直接在 PhpStorm 中本地应用或提交更改,更轻松地处理建议的更改。

更新了 Git 工具窗口中的 Commit Details(提交详细信息)窗格

Commit Details(提交详细信息)窗格现在包含有关 GPG 签名和构建状态的信息。 此前,此数据仅在 Git 日志中显示为一列。

Git File History(Git 文件历史记录):没有索引的新 UI

Git File History(Git 文件历史记录)工具窗口的新 UI 现在独立于索引进程。 即使 Log(日志)索引关闭,数据也会在新界面中表示。

以上就是此版本中最重要更改。 如果您想详细了解更多细节和我们实现的其他增强功能,请查看 PhpStorm 博客上的发布公告