PhpStorm 2020.1 最新变化

借助此主要 IDE 更新体验超高效率

开箱即用的 composer.json 支持

轻松地管理依赖项:在打开 composer.json 文件时可以直接在编辑器中执行所需的全部操作。

箭头函数

管理依赖项

我们已弃用旧的 Manage dependencies 对话框,因为从 composer.json 文件内部处理包更加容易。

要添加新的包,您可以在 require(-dev) 部分中输入它的名称,或者按 Ctrl+Space,并从建议列表中选择需要的包。

也会列出特定包的所有可用版本。

创建新的 composer.json 文件

创建新的 composer.json 文件

开始新项目时,您可以使用 IDE 中的模板创建 composer.json 文件。 右键点击项目树,然后选择 New -> composer.json File

更新和安装包

更新和安装包

如果在 composer.json 中指定了依赖项,但未安装,PhpStorm 会检测并高亮显示它。

Alt+Enter 并选择 Update package 或 Update all packages 可以安装。

导航到文件和文件夹

导航到文件和文件夹

您可以在包上按 Cmd(Ctrl)+Click,使 PhpStorm 在项目树中高亮显示供应商目录下该包的文件夹。 将会在编辑器中打开这些文件。

Cmd(Ctrl)+ClickCmd(Ctrl)+B,同样可以在浏览器中打开 composer.json 中的任意链接。

编写和运行脚本

编写和运行脚本

脚本部分中的每一个条目在装订区域中都有一个播放图标,您点击它就可以立即运行脚本。

添加新的脚本条目时,自动补全现在支持脚本引用、来自 vendor/bin 目录的二进制文件以及来自项目源的任何 PHP 文件。

使用 PCOV 和 PHPDBG 进行代码覆盖率分析

PSR-12

除了 Xdebug 外,现在还可以使用轻型 PHP 扩展 krakjoe/pcov 或内置的 PHPDBG 将生成覆盖率报告的速度加快。

您可以为测试创建运行配置。 在运行配置设置中,有一个下拉菜单可以选择您的首选覆盖率驱动器:Xdebug、PCOV 或 PHPDBG。

选择您的首选驱动器,然后点击主工具栏中的 Run with Coverage 按钮,并观察覆盖率结果。

PHPUnit 工具箱

支持 WSL 的解释器

PhpStorm 2020.1 提供了多种工具,可以帮助您快速、方便地升级到最新的 PHPUnit 版本。

编辑器中会高亮显示每一个弃用项。 将光标放在弃用项上,然后按 Alt+Enter,再从出现的列表中选择您的首选快速修复。 或者在错误描述窗口的底部进行选择。

要快速创建新的 PHPUnit 测试类,您现在可以通过在类名称上按 Alt+Enter 来使用 Create new PHP Test 意图。

PHP 类型推断改进

PhpStorm 的核心——类型推断引擎——获得了一些不错的改进。

类型属性

检测冗余 @var 标记

如果包含类型信息的 @var 标记冗余,且 PhpStorm 已了解变量的正确类型,那么此标记会被高亮显示。 您可以通过按 Alt+Enter 使用 Remove @var 快速修复将其删除。

箭头函数

更好地跟踪可空性

跟踪可空性是一项复杂的任务,PhpStorm 曾经在一些位置无法对其进行检测。 2020.1 版本完全不一样了。 PhpStorm 会告知您变量是否为空,并帮助您避免可空性问题。

数值文字分隔符

array_map/筛选器中的补全

现在,传递到 array_map()array_filter() 函数的闭包内的参数变量有一个完整的补全选项。

嵌套三元运算符

从初始值设定项推断非泛型数组类型

如果您要在包含已知项集合的数组上迭代,不再需要使用额外的 @var 标记来指定类型,因为 PhpStorm 会自动传播它。

更多功能

代码补全的 ML 辅助排名

代码补全的 ML 辅助排名

我们在 v2019.3 中为 PHP 重新引入了机器学习辅助的补全选项排名。 此功能通过在补全弹出窗口中对元素重新排序改进了代码补全,这样一来,最相关的项排名更靠前。

默认情况下,ML 辅助补全处于禁用状态。 要将其开启,请选择 Preferences/Settings | Editor | General | Code Completion 下面的 Rank completion suggestions based on Machine LearningPHP 复选框。

移动方法重构

移动方法重构

现在可以更轻松地将方法从一个类移动到另一个类,只需一个原子操作就可以完成。

将光标放在方法上,然后按 F6(或 Ctrl+T3)。 然后选择目标类,这样就完成了。

移除仅包含类型注解的 PHPDoc

移除仅包含类型注解的 PHPDoc

如果 PHPDoc 块仅包含带有类型的 @param 标记,则可以将其完全移除,为参数使用原生类型声明。

Alt+Enter,然后选择 Remove redundant PHPDoc comment 快速修复。

查找冗余三元表达式

查找冗余三元表达式

PhpStorm 会高亮显示可以减少和简化的任何三元表达式。 使用快速修复 (Alt+Enter),您可以将它们替换为简单的等效表达式。

消除冗余 pass-by-ref 实例

消除冗余 pass-by-ref 实例

使用 pass-by-reference 可能导致意外的后果。 PhpStorm 2020.1 可以检测并高亮显示不必要地标记为 passed-by-reference 的参数。

同样适用于 foreach 循环中的冗余 by-ref 值。

元数据

在特殊的文件 .phpstorm.meta.php 中添加额外信息可以扩展 PhpStorm 的“代码感知”。 此区域已进行多项改进。

重写、映射和类型中的参数索引

重写、映射和类型中的参数索引

之前,使用 override()map()type() 指令,可以只调整函数第一个参数的行为。 在 PhpStorm 2020.1 中,已经对此进行修复,可以明确地指定参数的索引。

箭头函数

支持通过 __get 访问属性

如果您必须通过 __get() 魔术方法接收一些对象,那么您可能会丢失类型信息。 您现在可以在 .phpstorm.meta.php 文件中指定此信息,无需使用 @var@property 标记。 即使类型预先未知,也同样适用。

自定义出口点

自定义出口点

PhpStorm 会将 die()exit() 函数或引发异常的任何函数视为终止调用。 但是在应用程序中,还有一些必须被视为“出口点”的其他自定义函数,例如,调试函数中的 dd()。 现在可以将任意函数标记为出口点。

ArrayAccess 对象中的键补全

ArrayAccess 对象中的键补全

之前,即使您想要将对象用作其他对象的数组容器,元数据辅助也可以让您继续使用代码补全。 不过,补全不适用于键。 2020.1 中添加了对键补全的支持。

包含元重写的函数的装订区域图标

包含元重写的函数的装订区域图标

最后但同样重要的是,您现在会在编辑器中看到 .phpstorm.meta.php 文件是否已使用 override()exitPoint()expectArguments() 指令修改行为。 由于项目中可能有很多这种元文件,点击图标,您会看到在此特定位置中使用的元文件。

HTTP客户端

HTTP 客户端中的 PHP 调试

HTTP 客户端中的 PHP 调试

开发 Web 应用程序或 API 端点时,您现在无需离开 PhpStorm 窗口即可轻松地开始调试。

要执行此操作,请创建或打开 .http 文件,添加请求,然后使用 Alt+Enter 意图运行 PHP Debug这会将 XDEBUG_SESSION Cookie 添加到请求,与 Xdebug 浏览器扩展的操作方法类似。

Web 技术

WebStorm 2020.1 中的所有新功能和改进都适用于 PhpStorm 2020.1,要么开箱即用,要么通过插件 Marketplace 中的免费插件提供。

用于 JavaScript 和 TypeScript 的新智能意图和检查

用于 JavaScript 和 TypeScript 的新智能意图和检查

使用新的智能意图和检查 (Alt+Enter) 可在编码时节省时间! 例如,您现在可以快速地将现有代码转换为可选链和/或空值合并,该语法已在最新版本的 JavaScript 和 TypeScript 中引入。

Vue.js 的 Vuex 和 Composition API 支持

Vue.js 的 Vuex 和 Composition API 支持

通过对 Vuex 库和即将发布的 Vue 3 中的 Composition API 的开箱即用支持,您可以更加顺畅地构建出色的 Vue.js 应用程序。

保存时运行 Prettier

保存时运行 Prettier

借助新的 Run on save for files 选项,在您保存于 IDE 设置中指定并在项目中编辑的文件后,WebStorm 会将 Prettier 格式化应用到所有这些文件,不再需要文件观察程序或第三方插件。

IDE

智能语法和拼写检查工具

智能语法和拼写检查工具

高级校对和语法检查插件 Grazie 现在开箱即用。 立即高亮显示拼写错误和其他错误,并使用快速修复操作对它们进行快速修复,就像处理代码中的任何其他错误一样。

Markdown 文件默认启用拼写检查。 要检查任意 PHPDoc 注释、HEREDOC/NOWDOC 字符串或 PHP 文件中的字符串文字,您需要在 Preferences/Settings | Editor | Proofreading | Grammar 下启用拼写检查。

要进行更深度的语法检查,您可以在 Preferences/Settings | Editor | Inspections -> Proofreading 下启用 Grammar 检查。

使用 PhpStorm 进行快速编辑

使用 PhpStorm 进行快速编辑

借助新的 LightEdit 模式,可以将 PhpStorm 用作笔记本式的轻型编辑器,在文件中进行快速更改,而无需完全打开 IDE。

要试用此模式,请从命令行(如需更多说明,请参阅从命令行使用 IDE 功能)或从您的操作系统文件管理器打开文件。 如果 PhpStorm 没有运行,文件将在 LightEdit 模式下打开。

数据格式自定义

水平或垂直拆分终端会话

现在可以一次打开任意数量的终端会话,并同时观察所有终端会话上的输出,而无需在各个标签页之间切换。

您可以从 Terminal 调用上下文菜单来创建、导航和关闭拆分的终端会话。

统一的 SSH 配置

统一的 SSH 配置

所有 SSH 连接现在都位于 Preferences/Settings | Tools | SSH Configurations 下的一个位置。

这样就可以在一个位置创建连接,然后在 IDE 中的任意位置重用,例如在部署配置中,通过 SSH 用于远程 PHP 解释器,或作为 SSH 终端。

外观

更新了浅色主题

更新了浅色主题

已为所有操作系统统一浅色主题,现在称为 IntelliJ Light。 如果您希望继续使用旧主题,可以在 Preferences/Settings | Appearance & Behavior | Appearance | Theme 下面切换。

数据格式自定义

新的默认字体

JetBrains Mono 是我们专门为开发者设计的免费开源字样,可使代码读取更容易。 现在,它用作默认编辑器字体。

免打扰开发模式

免打扰开发模式

新的 Zen 模式将“免打扰模式”和“全屏模式”结合在一起,这样您就可以深入处理代码了。

要试用 Zen 模式,请转到 View | Appearance | Enter Zen Mode

版本控制

为 Git 变基重新设计了对话框

为 Git 变基重新设计了对话框

Interactively Rebase from Here 现在是一个真正交互式对话框,可以控制变基过程的各个方面:

  • 选择您要对分支中的每个提交执行的操作。
  • 查看显示已应用的操作的图表。
  • 查看提交详细信息。
  • 查看差异,并根据需要检查或重置更改。
推送任何分支

更改提交流程

为了简化提交流程,我们开发了一个新的 Commit 工具窗口,用于处理所有与提交相关的任务。 默认情况下为所有新用户启用。

如果您是现有用户,并且想试用,请选择 Preferences/Settings | Version Control | Commit 中的 Use non-modal commit interface

数据库工具

DataGrip 团队对 PhpStorm 中的数据库工具进行了一些超棒的改进。 了解 DataGrip 2020.1 中的最新变化。

以 Excel 格式导出

以 Excel 格式导出

现在,终于能够以 Excel 文件导出查询结果或表了。

在编辑器中查看结果

编辑器中的结果

现在,您可以直接在代码编辑器中查看结果。 要试用此功能,请选中 Preferences/Settings | Database | General | Show output results in the editor 选项。

Run configurations

Run configurations

PhpStorm 用户已经十分熟悉运行配置的概念。 除了运行 PHP 脚本、测试或 HTTP 请求外,现在还可以执行 DB 查询。

其他改进:

  • 标记为 @deprecated 的所有成员和项在结构树状图中都添加了删除线
  • 可以通过一个新操作快速跳到右大括号或左大括号。
  • 现在可以为 Twig 自定义 Lexer 语法。
  • 配置文件路径已更改 - 了解详情
  • 运行配置可以在 .idea 文件夹之外保存并通过版本控制共享。 打开 Run/Debug Configurations 对话框,然后选中 Store as project file 选项。