PhpStorm 2022.3 最新变化

PhpStorm 2022.3 是一次重大更新,包含新 UI 预览、PHP 8.2 支持、针对 PHP 的 Code Vision、快速修复预览、ParaTest 支持、PHPDoc 呈现视图、数据库工具的 Redis 支持等。

新 UI 预览版

全新 UI 现已推出,供大家试用。新 UI 仍处于测试版/预览版阶段,因此默认处于关闭状态

您可以在 Settings/Preferences | Appearance & Behavior | New UI Preview(设置/偏好设置 | 外观与行为 | 新 UI 预览)中切换到新 UI。

新 UI 更整洁,干扰因素更少,工作速度更快,同时可以让您按习惯的方式去做大部分事情。

用户体验

在此版本中,您会发现许多其他明显的改进。 下面是一些最显著的改进。

Code Vision

在编辑器中的 PHP 代码旁边,您可以看到关于 PHP 符号(类、特征、接口、方法或函数)的其他信息。

您会看到用法编号 – 无需点击符号即可找到。

对于类和接口,您会分别看到继承者数量和实现次数

您还可以从 Git 中了解谁对某段代码做了最多更改,从而快速查看谁是代码所有者,谁对该代码部分拥有最专业的知识。

快速修复预览

您可以按 Alt+Enter 自动修正某些代码问题。

现在,您将能够在应用建议的快速修复或意图之前预览它们,立即查看您的代码将如何变化。

PHPDoc 呈现视图

现在,您可以通过一个选项来更改 PHPDoc 块在 PhpStorm 2022.3 中的外观,从而提供更好的呈现效果以及对 HTML 格式设置的支持。 这使用户可以更加轻松愉快地阅读带有大量注解的代码。

要切换新的呈现视图,请点击任何 PHPDoc 块附近的装订区域图标 呈现视图装订区域图标

要为所有 PHPDoc 注释启用呈现,请右键点击装订区域图标并选择 Render All Doc Comments(呈现所有文档注释)。

改进了 Quick Documentation(快速文档)

如果在任何函数、类或方法上按 Ctrl+Q,PhpStorm 将在编辑器中显示文档。

此弹出窗口得到了显著改进。 现在,您不必切换到浏览器并搜索文档,因为您可以在 IDE 中找到所有内容。

PHP 8.2

PhpStorm 2022.3 完全支持 PHP 8.2。 IDE 中的大多数更改都将有机地适应您的 PhpStorm 工作流,因此我们只会提到您需要了解的新功能。

只读类

只读类是一种声明只有只读属性的类的快捷方式。 您可以使用这些类来获得额外的数据完整性。

对于只读类,PhpStorm 提供:

  • 一项快速修复,用于将具有只读属性的类转换为只读类。
  • 一项检查,确保只读类只能有只读子类。
  • 检测只读类中的冗余只读属性。
  • 只读类中的禁止静态和动态属性检查。

弃用的动态属性

在 PHP 8.2 中访问不存在的属性时将收到弃用通知。

PhpStorm 会高亮显示这些用法,并通过添加属性或使用 #[AllowDynamicProperties] 特性快速修正错误。

类型系统改进

PHP 8.2 现在支持析取的范式类型,以及独立的 nulltruefalse 类型。 我们也已经在 PhpStorm 中添加了对它们的支持。

更多弃用

PHP 8.2 弃用了更多内容,PhpStorm 为您提供相应的检查来发现它们,并提供快速修复来更新代码。

弃用了 ${} 字符串内插

如果需要在字符串中使用变量,过去有三种可能的内插方式。 其中一种方式现已被标记为弃用,将来会被移除。

PhpStorm 会高亮显示匹配项,您可以使用 Alt+Enter 快速修复升级代码。

已弃用部分支持的可调用对象

在 PHP 8.2 中,几种调用函数的方式现已弃用。

PhpStorm 会高亮显示无效代码,您可以使用 Alt+Enter 快速修复升级代码。

PhpStorm 可以一次扫描整个代码库来检测所有可能的问题。 转到 Code | Analyze Code | Run Inspection by Name(代码 | 分析代码 | 通过名称运行检查)。 接下来,举例来说,搜索“dynamic property”,PhpStorm 将执行剩下的工作。

数据库:Redis 支持

期待已久的 Redis 支持的初步迭代现已实现。

调试

如果您在配置 Xdebug 时遇到问题,现在可以在 PhpStorm 中执行以下操作来确定问题。

验证 phpinfo() 输出

向 PHP 脚本或页面添加 phpinfo() 调用,并复制您在浏览器中看到的函数输出。 然后,调用 Run/Web Server Debug Validation(运行/Web 服务器调试验证),您会看到一个对话框,可以粘贴上一步中的 phpinfo() 输出。

PhpStorm 将分析服务器配置并检测最常见的问题。

使用脚本检查服务器配置

If the phpinfo() information didn’t help, you can use PhpStorm’s validation script on the server.

使用 Xdebug 调试返回值

Xdebug 3.2 有一个额外的“return from function”(从函数返回)调试步骤,您可以检查返回值。

PhpStorm 2022.3 支持这个新功能。 要触发该功能,请在执行到函数的最后一条语句时按“Step Into”(步入)。 结果是,Watches(监视)中将显示一个额外的变量。

PHP 工具集成

使用 ParaTest 并行运行测试

PhpStorm 中期待已久的并行测试支持现已实现!

要并行运行测试,需要在测试的运行配置中选中 Use Paratest(使用 ParaTest)选项,并检查 Paratest 二进制文件的路径是否正确设置。 通常,如果在 composer.json 中添加了 ParaTest,那么路径应如下所示:./vendor/bin/paratest_for_phpstorm

为 PHP 使用外部格式化程序

现在,可以在 Preferences | PHP | Quality Tools(偏好设置 | PHP | 质量工具)中选择外部格式化程序。 You can now use FriendsOfPHP/PHP-CS-Fixer or squizlabs/PHP_CodeSniffer for this purpose.

Robo 集成

A popular task runner for PHP, Robo, received the following extended support:

  • 如果项目中存在 Robo 类,则可以使用一个特殊的工具窗口 — Robo tasks(Robo 任务)。
  • 可以在上下文菜单中获得用于执行 Robo 任务的运行配置,也可以从 Robo 方法中调用相关配置。
  • Robo 类中的每个 public 方法都有一个用于相应配置的装订区域图标。

Prophecy 支持

If you use the Prophecy mocking framework in your tests, working with it in PhpStorm will now be easier.

针对 PHP 的更多功能

日期时间格式预览

您不再需要记住或查找 date() 格式。 将鼠标悬停在日期格式字符串上时,PhpStorm 2022.3 会显示带有示例日期的工具提示。

此外,在编辑日期格式字符串时,对于识别为格式形参的所有字符,您将获得包含提示的自动补全。

支持对列表数组形状的迭代

Support for array shape annotations was added in PhpStorm 2021.2, then in 2022.1, we added multiline and nested syntax support for array shapes.

PhpStorm 2022.3 中提供了缺少的最后一部分 – 您将获得对循环中数组形状条目的完整代码补全。

新的 Settings Sync(设置同步)解决方案

我们将两个旧同步解决方案(IDE Settings Sync(IDE 设置同步)和 Settings Repository(设置仓库))合并成一个解决方案 – 新的 Settings Sync(设置同步)。 它可以让您在不同的 IDE 和计算机之间可靠地同步设置。

如果您以前没有用过设置同步解决方案,但想尝试新的解决方案,可以通过 Settings / Preferences | Settings Sync | Enable Settings Sync(设置/偏好设置 | 设置同步 | 启用设置同步)启用该功能。

Docker

在不安装 Docker Desktop 的情况下从 WSL 使用 Docker 可执行文件

您可以在 Settings / Preferences | Build, Execution, Deployment | Docker(设置/偏好设置 | 构建、执行、部署 | Docker)中设置此类连接。

新上下文操作:Pull image(拉取镜像)

在高亮显示的图像名称上调用上下文操作 (Alt-Enter),然后选择 Pull Docker image(拉取 Docker 镜像)来拉取所需镜像,无需从 Dockerfile、docker-compose.yml,甚至从使用 Testcontainers 的测试中运行该操作。

.dockerignore 文件类型支持

.dockerignore 文件中获得高亮显示和补全。

在 Dockerfile 文件中支持 heredoc 格式

在 Dockerfile 中使用多行脚本。

来自 Docker 上下文的 Docker 连接

Set up additional Docker connections using Docker Contexts by calling the Add Service context menu in the Services view and selecting Docker Connections From Docker Contexts.

HTTP 客户端

在 HTTP 客户端中为长请求设置格式

HTTP 客户端现在为具有长 URL 的请求提供了更好的格式设置选项。 您也可以使用 Put query parameters on separate lines(将查询形参置于单独的行中)上下文操作,将查询拆分成不同行中的小片段。

预请求脚本

HTTP 客户端现在支持在请求之前执行的脚本块。 您可以在请求执行之前生成一些数据,并使用变量将其传递给后续请求。

用于 JavaScript 处理程序的新 API

PhpStorm 现在提供 сrypto API,可以用来计算 HTTP 请求的 md5 或 sha1 哈希值。

现在提供更多的随机函数,便于快速执行 API 测试。

Web 开发

适用于 Next.js 和 Vite 的新项目模板

适用于 Next.js 和 Vite 的新项目模板

PhpStorm 欢迎屏幕上的 New Project(新建项目)向导中现在包含适用于 Vite 和 Next.js 的项目模板。 我们还更新了适用于 Vue 的项目模板,以确保其符合最新标准。

针对 JavaScript 和 TypeScript 的 Code Vision

针对 JavaScript 和 TypeScript 的 Code Vision

Code Vision 嵌入提示现在也适用于 JavaScript 和 TypeScript。 通过这些提示,可以更轻松地跟踪代码中各种类、方法、类型别名和接口的用法。

Vue 更新

Vue 更新

PhpStorm 现在可以处理未解析的导入,并为导入 Vue 组件提供建议。 我们也已支持 props 析构语法,改进了针对 Vue 库组件 props 的代码补全和类型检查行为,并修正了几个 Nuxt 3 问题。

Vitest 支持

Vitest 支持

PhpStorm now supports Vitest, a Vite-native unit test framework! 您可以用所有您期望的主要方式运行、重新运行和调试测试,包括通过装订区域图标。 此外,监视模式在所有测试场景下默认均已启用。 在监视模式下还支持快照测试和覆盖率,从而在编码时为您提供几乎即时的覆盖率反馈。


这些是此版本中最重要的变化,当然还有很多。 请查阅 PhpStorm 博客上的发布公告,查看此版本中增强功能的完整列表。