早期访问计划

PHPSTORM 2021.3 EAP#5:改进的重构

PHPSTORM 2021.3 EAP Build#5现在可用!要赶上Phpstorm 2021.3的所有新功能,请查看我们的以前的EAP博客帖子
在这篇博客文章中,你可以了解如何做到这一点内联方法内联变量, 和提取的变量将在即将发布的释放中得到改善。
工具箱的应用是获得最新的EAP构建并保持您的稳定和EAP版本最新的最简单的方法。您也可以从我们的网站

下载PhpStorm 2021.3 EAP

改进重构

我们不断努力改善PhpStorm提供的重构.在即将发布的版本中,您将看到内联函数内联变量, 和提取的变量工作明显更好,边缘案例覆盖,解析错误,添加了新的快速修复。

所有的改进都可以在这个EAP构建中尝试。

让我们快速看一下我们对这些重构做了哪些改进。

内联函数或方法

当方法主体比方法本身更明显时,用方法的内容替换对方法的调用并删除方法本身是有意义的。

要使用这种重构,请将插入符号放置在冗余方法处并按下Ctrl + Alt + N⌥⌘N在macOS)。

以下是改进的亮点:

  • 允许重构非静态方法wi - 53049
  • 对于有多个返回语句的函数禁用wi - 61834
  • 在多重解析时显示选择器wi - 61839
  • 支持方法链wi - 60622
  • 不允许内联实现接口抽象类方法的方法wi - 60744
  • 禁止内联魔法方法,如__get/__sleep/__constructwi - 60746
  • 尝试内联__Invoke方法时修复异常wi - 60745
  • 在“new”表达式周围添加额外的括号wi - 60753
  • 替换匹配臂内重复的变量名wi - 60756
  • 用于父/自主/静态:: f()调用的修复wi - 60752
  • 支持箭头函数/匿名函数作为参数wi - 60755

也有一个新的应急的可用的。如果有一个只使用一次的私有方法在代码中,您可以按Alt + Enter在它并选择内联方法

内联变量

有时代码中可能会有多余的变量,这些变量只会增加混乱,可以删除。

作为一个简单表达式的结果而赋值的临时变量就是一个很好的例子。在这种情况下,用表达式本身替换对变量的引用是有意义的。

要使用此重构,请将插入符号放在冗余变量并按Ctrl + Alt + N⌘⌥N在macOS)。

如果您不记得重构名称或快捷方式,也可以使用Ctrl + T.^T.),并从列表中选择一个。

如果只使用一次变量一次,那么您可以通过按下快速修复它Alt + Enter

以下是改进的其他原因内联变量

  • 不允许内联一元操作(++,-)WI-62666
  • 支持内联NOWDOC/HEREDOC变量wi - 60083
  • 如果Nowdoc内嵌入Heredoc,则适当的逃生变量wi - 60084
  • 替换匹配臂内重复的变量名wi - 60756
  • 修复了内联连接字符串的问题WI-49266
  • 修正了三元表达式的错误wi - 55004
  • 修正了引号的错误wi - 56065要在PhpStorm中看到更多不同重构的例子,请查看Matthew Setter的《PhpStorm中的重构》系列视频。

介绍(提取)变量

如果您有一个难以理解的表达式,那么将表达式的结果或其部分替换为自解释的独立变量是有意义的。这就是Extract变量的作用。

新闻Ctrl + Alt + V⌘⌥V)在任何表达式上,从中创建一个新变量。

如果选择一些代码,则phpstorm将用新变量替换它。如果你没有选择任何东西,那么你会看到一个下拉列表与建议提取.为了减少您的认知负载,列表将不包括赋值表达或其他没有意义的东西。整洁的!

如果你决定回去撤销重构Ctrl + Z.,每次变化都会回来,甚至你的墨时甚至将在重构前的相同位置加回它。如此真的没有伤害重构,因为你可以轻松地撤消它。

这里有一些其他有趣的例子引入变量我们在即将发布的版本中谈到的重构。

来自条件的智能提取物:

从循环中提取数组项:

提取方法

我们在phpstorm 2021.2中显著改进了Extract方法重构。阅读完整的故事提取方法重构,更新和改进

我们希望您遇到了很多这些改进!请在我们的评论或文件门票中分享您的反馈问题跟踪器如果你发现任何错误。

要在PhpStorm中看到更多不同重构的例子,请查看Matthew Setter的《PhpStorm中的重构》系列视频。


此构建中的完整更改列表可在发行说明

  • 重要的!PhpStorm EAP构建还没有经过全面测试,可能不稳定。
  • 你可以同时安装一个EAP版本和一个稳定的PhpStorm版本来尝试最新的特性。
  • EAP构建免费的使用但在构建日期后30天过期。

如果发现任何问题,请向我们报告问题跟踪器或者评论这篇文章!

您的Jetbrains phpstorm团队
发展的动力

发现更多