PhpStorm 2021.1 最新变化

PhpStorm 2021.1 是一项主要更新,引入在编辑器内预览 PHP 和 HTML 文件的功能、有助于发现错误的 20 多项新的检查、所有子系统的改进,以及 Code With Me 结对编程。

PHP

在状态栏中设置 PHP 语言级别

在状态栏中设置 PHP 语言级别

在不修改 composer.json 的情况下为项目设置任意 PHP 版本。 例如,这可用于在切换到新的 PHP 版本之前,查看代码库与新版本的兼容性。

轻松定位 PHP 设置

轻松定位 PHP 设置

为了便于查找和更改与 PHP 相关的设置,我们将该部分移至顶层 Settings / Preferences | PHP

在编辑器中预览 PHP 和 HTML 文件

在编辑器中,右上角的新图标可以打开 PhpStorm 内部的文件预览标签页。 适用于 HTML 和 PHP 文件。

打开 PHP 文件,输入代码,可立即在其旁边看到结果。 无需切换到其他窗口! 链接的 CSS 和 JavaScript 文件中的任何更改都将反映在预览中。

在编辑器中预览 PHP 和 HTML 文件

PhpStorm 使用在 Settings/Preferences | PHP 下的项目设置中指定的局部 PHP 解释器。 不支持 Docker 和其他远程解释器。

您可以在 Preferences | Tools | Web Browsers 下启用至少一个浏览器并选中 For HTML files 复选框来启用预览图标。

您也可以使用快捷键 Alt+F2 打开预览标签页。

在 SQL 查询中使用表前缀

许多内容管理系统和框架都允许您指定表前缀,这有助于将同一数据库用于多个应用程序。

在 SQL 查询中使用表前缀

在先前版本中,由于 SQL 查询包含前缀标记,PhpStorm 在这种情况下会失去数据库集成。

现在可以通过 .phpstorm.meta.php 文件指定前缀。 在帮助文章中进一步了解元文件和如何指定 SQL 前缀

检查与快速修复

可以简化布尔表达式

可以简化布尔表达式

如果布尔表达式包含 truefalse 文字,PhpStorm 可将其简化。 使用 Alt+Enter 快速修复可移除冗余并提高可读性。

严格比较类型不兼容的操作数

严格比较类型不兼容的操作数

如果一个操作数类型与另一个操作数类型不同,则用于严格比较的 === 运算符将始终生成 false

PhpStorm 会高亮显示这种情况,因为它们可能是错误的来源。 PhpStorm 会考虑到所有类型推断的信息,并帮助您找到不明显的问题。

PHP 8:以命名参数替换函数调用中的赋值

PHP 8:以命名参数替换函数调用中的赋值

过去通常的做法是在函数调用中添加变量赋值来模仿参数名。

在 PHP 8 中,可使用 Alt+Enter 以真实的命名参数替换赋值。

将 `isset` 替换为合并

将 `isset` 替换为合并

此代码段 isset($a) ? $a : $b; 完全等同于 $a ?? $b,PhpStorm 将建议 Alt+Enter 快速修复进行替换。

以通用体简化 `if` 块

以通用体简化 `if` 块

在体变为相同后,部分 ifelse 块可能为冗余。 PhpStorm 可提取公共部分或合并块。

反转 `if` 语句

反转 `if` 语句

在任意 if 上按 Alt-Enter,然后从菜单中选择 Invert `if` statement。 这将使条件变成相反的状态,并进行必要的代码调整以保留逻辑。 如果您喜欢先前的返回方法,此操作将帮助您重构代码。

‘use’ 语句中的不必要前导 ‘\’

‘use’ 语句中的不必要前导 ‘\’

在某些情况下,前导反斜杠对于命名空间冗余。 PhpStorm 有助于确定可将其移除的位置。

`foreach` 变量覆盖已定义的变量

`foreach` 变量覆盖已定义的变量

foreach 循环中键和值的变量可能与其他变量或参数的名称冲突。 PhpStorm 高亮显示可能发生错误的所有位置。

变量的不必要花括号语法

变量的不必要花括号语法

在字符串插值上下文中的花括号冗余并且可以安全删除以使代码更整洁时,PhpStorm 将高亮显示。

根据默认值更改参数类型

根据默认值更改参数类型

如果声明的类型与值的类型不匹配,则可以使用 Alt+Enter 快速更新该类型。 或者,可通过 PHP 8 中的 PhpStorm 使用联合类型。

将 `isset` 替换为 `!== null`

将 `isset` 替换为 `!== null`

使用 isset() 函数仅对数组和变量有效。 在所有其他情况下,均建议确认操作数不为 null。 使用 Alt+Enterisset() 检查替换为 null 检查。

高亮显示不安全的 http:// 链接

PhpStorm 高亮显示字符串中的 http:// 协议用法,并提供 Alt-Enter 快速修复将其改为 https://。 您还可以使用快速修复将 URL 添加到忽略列表。

可疑名称组合

可疑名称组合

PhpStorm 高亮显示参数名称或返回值的一些典型误用,例如 $needle$haystack$x$y。 这可能是一个潜在的错误,或者,至少在阅读代码时令人非常困惑。

配置提交前检查

配置提交前检查

现在,在将更改提交到 VCS 之前,您可以选择代码检查配置文件。 点击齿轮图标显示提交选项,选中 Analyze code 复选框,点击 Configure,然后选择所需的配置文件。 可以在 Preferences/Settings | Editor | Inspections 中创建配置文件。

其他

引入合成范围以改进重构

引入合成范围以改进重构

在 PHP 中,foreachforwhilecatch 块等循环结构不含孤立结构。 如果只需要在块内重命名变量,这可能会带来不便。

在 PhpStorm 2021.1 中,我们为此类块引入了合成范围,使 rename 重构 (Shift+F6) 更加直观。

改进了自动语言注入

改进了自动语言注入

PhpStorm 2021.1 会分析如何使用变量并自动注入语言引用。

例如,如果在 preg_* 函数中使用了变量,PhpStorm 将理解这是一种模式并高亮显示 RegExp。

composer.json 的 `suggest` 部分中的扩展

composer.json 的 `suggest` 部分中的扩展

PhpStorm 现在在 requiresuggest 部分都会考虑扩展。

当扩展按照建议在 composer.json 中注册但未经检查使用时,如 extension_loaded()function_exists(),PhpStorm 将发出警告。 您可以使用快速修复将扩展移动到 require/require-dev

重要修复

在这一版本中,我们主要关注稳定性和质量。 我们总计修复了用户和 JetBrains 团队成员提交到问题跟踪器的 2246 个问题。 以下是最有趣的一部分:

  • 现在可在 Docker 中调试 WSL 2 项目。
  • 现在,质量工具可以在 exec 模式下使用 docker-compose 正确解析路径。
  • 可正确处理大文件(超过 5000 行)。
  • 我们显著提高了具有多个别名的项目的性能。

Code With Me

使用 Code With Me 进行的协作开发

Code With Me 是用于协作开发和结对编程的 JetBrains 工具。 我们最初已在 PhpStorm 2020.3 中引入,此版本提供了许多重大改进。

设置项目所需访问级别并与访客共享链接。 您的同伴不需要安装 IDE 即可与您协作,且平台具有嵌入式音频和视频通话以及聊天消息

需要更高安全性的企业可以在公司自己的私有网络上安装并安全运行内部部署的 Code With Me

HTTP 客户端

SSL 支持

SSL 支持

现在,您可以点击 Add environment file 并选择 Private,在 HTTP 客户端中定义 SSL 设置。 IDE 将自动创建一个文件,供您添加 SSL 配置:clientCertificatehasCertificatePassphraseclientCertificateKeyverifyHostCertificate

UI 改进

UI 改进

新增的眼睛图标包含设置正文显示方式的选项。 您可以在 Text / JSON / HTML / XML 之间切换模式,可以启用行号,新增按钮 Copy Response Body to Clipboard

IDE

最大化分割视图中的标签页

最大化分割视图中的标签页

将标签页拖动到 IDE 窗口的角落即可分割编辑器。 然后双击标签页,使其编辑器区域最大化。 再次双击即可恢复其原始大小。

JSONPath 支持

JSONPath 支持

使用 JSONPath 查询语言搜索 JSON 文档。 Edit | Find | Evaluate JSONPath 下新增操作。

JSON Lines 格式支持

JSON Lines 格式支持

PhpStorm now supports the newline-delimited JSON Lines format used for working with structured data and logs. IDE 将识别 .jsonl.jslines.ldjson.ndjson 文件类型。

版式设置

版式设置

现在可以调整字体变体和后备字体。 新增选项位于 Settings / Preferences | Editor | FontsTypography Settings 下。

Web 技术

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

改进了对 Stylelint 的支持

改进了对 Stylelint 的支持

现在,点击几下即可使用 Stylelint 解决 CSS 中的问题。 将鼠标悬停在文件中的问题上或将文本光标放在其上,然后按 Alt+Enter,选择 Stylelint: Fix current file

此外,您现在可以在 Settings / Preferences | Languages & Frameworks | Style Sheets | Stylelint 中指定配置文件的路径。

检查选择器的特异性

检查选择器的特异性

When working with style sheets, you can now check the specificity of your selectors – just hover over a selector that you want to check. 或者,将焦点放在选择器上,按 F1/Ctrl+QDocumentation 弹出窗口中查看这些信息。

GitHub Pull Request 改进

点击 + 图标或转到 Git | GitHub | Create Pull Request 即可新建 Pull Request。

GitHub Pull Request 改进

新的对话框将满足您的所有需要:

  • 从包含所有可用分支的列表中选择基础分支和头部分支。
  • 在 Files 标签页中审查更改的文件。
  • 编辑 PR 标题和描述、指定审查者和被指派者,并添加标签。
  • 创建草稿 Pull Request。

数据库工具

查看 DataGrip 2021.1 最新变化,也可以在 PhpStorm 中使用所有这些功能。 此处仅列出一部分。

授权 UI

授权 UI

您可以使用 Cmd/Ctrl+F6 在数据库资源管理器中的用户上调用 Modify user 窗口,该窗口现在具有向对象添加授权的 UI。

这适用于 PostgreSQL、Redshift、Greenplum、MySQL、MariaDB、DB2、SQL Server 和 Sybase。

上下文实时模板

上下文实时模板

这是我们为从数据库资源管理器直接生成简单语句打造的全面解决方案。 右键点击浏览器中的对象时,出现的列表将包含特殊的实时模板项。

进一步了解如何创建自己的上下文实时模板