PHP 目前没有在语言级别上提供对泛型的支持,但是通过注解使用泛型已经相当常见。 使用集合、容器、工厂和其他应用程序时,它们将使代码更安全、更可预测。
我们通过 @template
注解添加了对泛型的支持。 这使得集合操作在许多情况下更加简单,建议将包含预期类型的元素。
对于工厂模式,您现在可以使用 class-string<T>
注解,您将获得更好的代码补全。
对泛型的初步支持尚不完善,并且具有已知局限。 您可以在这篇博文中了解更多相关信息。
新的 8.1 版 PHP 解释器预计将于 2021 年底发布。 但与往常一样,我们会提前推出支持。
枚举是 PHP 8.1 版本中最受期待的一大特性。
通过 PhpStorm 2021.2,您可以立即开始使用枚举。 IDE 提供代码建议和验证,防止您操作错误。
PHP 中的枚举包含一组用例,可以具有方法,也可以用作类型提示。在所有用例中,PhpStorm 都将提供错误高亮显示和恰当的建议来帮助您节省时间。
枚举用例可以有标量等效项。 如果您需要将枚举保存到数据存储中,这将非常有用。 这种枚举即 Backed Enum。
通过快速修复,您可以向 Backed Enum 添加标量类型声明。
枚举还可以与条件和匹配表达式等功能良好配合。
如果您的代码中有对象式数组,您现在可以使用这个 PHPDoc 注解定义其结构:array{key: type, key: type, ...}
。
PhpStorm 为此类带注解的数组提供代码补全,节省常规性输入的时间并避免引入错误。
支持仅限于单行数组形状定义。 对于更大的结构,通常最好使用真实的对象和类。
最常用的 PhpStorm 重构之一 Extract Method 已得到改进。
允许您将大方法拆分为更小的单元,并可消除重复代码。
要使用此重构,请选择任意代码段并按 ⌘⌥M (Cmd+Alt+M / Ctrl+Alt+M)。
PhpStorm 带有 Duplicated code fragment 检查。 高亮显示非常相似的代码块,只要最终结果相同,格式、变量名称和语句顺序都可以不同。
此检查高亮显示重复片段的第一行。 您现在可以在高亮显示的行上按 Alt+Enter 并从重复代码快速修复调用 Extract Method 重构来快速重构此类代码。
PhpStorm 还可以在重构期间在当前范围(方法、类或文件)中找到较小代码片段的重复项。 选择一个代码片段,然后按 ⌘⌥M (Cmd+Alt+M / Ctrl+Alt+M) 调用重构。 您将在对话框底部看到 Review and replace duplicates 复选框。
您还可以在不选择代码的情况下调用 Extract Method 重构。 在这种情况下,PhpStorm 会建议一列可能的代码片段。 建议已经过筛选并且只包含对重构有意义的片段。
您可能已经知道用 Expand / Shrink selection 操作(MacOS 上为 ⌥+上 / ⌥+下,Windows 上为 Ctrl+W / Ctrl+Shift+W)可以选择一段代码。 这是选择重构代码的最快方法之一。
此版本引入了一个小巧的实用更新,可选择没有花括号的块。
Extract Method 重构获得更多改进! 在此博文中了解详细信息。
每个版本都带有一系列检查,减少您寻找错误和修正错误的时间。 在 PhpStorm 中高亮显示的代码上按 Alt+Enter 应用修正。
用 PHP 8 的新安全运算符替换不必要的 null 检查。 按 Alt+Enter 执行转换。
PhpStorm 将高亮显示通过子类或子接口而不是定义常量的实体访问的常量。 使用 Alt+Enter 快速修复将实体名称替换为定义常量的实体的名称。
PhpStorm 现在将评估部分条件以识别冗余。 这适用于检查不明显并且您无法通过观察判断冗余检查的情况。
我们在 Settings / Preferences | Editor | Inspections 的 PHP 部分添加了一组新的检查。
该组包括有助于确定重构的良好候选项的检查。 该组包括有助于确定重构的良好候选项的检查。这些检查默认禁用,但即使在禁用状态下,您也可在检测到的代码附近看到一个额外的装订区域图标 (而不是在编辑器中加下划线)。
点击装订区域图标将调用建议的重构。
这些检查是多种代码质量指标的组合:循环复杂度、嵌套深度、使用的变量数、总行数等等。
您可以在每项检查的描述中找到使用的指标列表。
我们扩展了可以执行测试的可能提交前操作的列表。 勾选 Run Tests 复选框,选择要运行的配置。 在将代码放入 VCS 前对其验证可以提供很大帮助。
您现在还可以点击相邻的 Choose profile 自定义 Analyze code 和 Cleanup 选项。
我们在 Preferences / Settings | Tools | Actions on Save 下添加了一个新的配置页面。
您将找到可以使用 ⌘S / Ctrl+S 或在隐式自动保存时触发的操作列表。 这些操作包括代码检查、重新格式化、代码清理和部署等。
PhpStorm 默认会在编辑器中打开初始文件和更改后文件之间的差异比较,无论您是在何处调用 Show Diff 操作。 如果您更喜欢在单独的窗口中跟踪更改,则可以从编辑器中拖放所需的文件。
Local History 一直是众多开发者的幕后帮手,新的改进允许您使用 Local History 对话框中的搜索字段在本地修订中快速找到所需的文本。
PhpStorm 2021.2 提供了一种保护提交的新方法。 您现在可以通过 GPG 启用 Git 提交签名。 只需转到 Settings | Version Control | Git,从下拉列表点击 Configure GPG Key。
从此版本开始,您可以体验到 PhpStorm 完全本地化的中文、韩语和日语 UI。 本地化以非捆绑式语言包插件提供,可以轻松安装到您的 IDE*。 超过 150 万用户已开始使用我们语言包的部分本地化 EAP 版本。 现在您可以享受完整的本地化体验!
WebStorm 2021.2 中的所有新功能和改进也都适用于 PhpStorm 2021.2,要么开箱即用,要么通过插件 Marketplace 中的免费插件提供。
PhpStorm 现在可以重命名 useState
的值和函数。 将文本光标置于状态值上并按 ⇧F6/Shift+F6 键或转到右键点击上下文菜单中的 Refactor | Rename。
使用 CommonJS 模块时,PhpStorm 现在可以通过代码补全添加缺少的导入语句。
查看 DataGrip 2021.2 最新变化,也可以在 PhpStorm 中使用所有这些功能。 此处仅列出一部分。
现在可以基于真实数据源生成 DDL 数据源。 DDL 文件将在磁盘上创建,新数据源将以其为基础。 这样,您将始终能够重新生成这些文件并刷新 DDL 数据源。
我们的代码补全现已进入 MongoDB 控制台。
以下仅为 PhpStorm 2021.2 众多额外改进和增强中的一小部分:
dirname()
中添加了对 levels 参数的支持。