PhpStorm 2021.3 是一个主要更新,引入了对最近发布的 PHP 8.1 的支持,可更好地处理 PHP 中的泛型,部署、HTTP 客户端和 VCS 集成得到增强。
新版解释器刚刚发布! 观看由 Brent Roose 和社区成员制作的视频,简要了解各项全新的语言功能。
枚举是 PHP 8.1 中最受期待的功能之一。
PhpStorm 2021.2 中引入了对枚举的支持,提供了代码建议和验证以防错误使用。
PHP 中的枚举包含一组用例,可以具有方法,也可以用作类型提示。 在所有用例中,PhpStorm 都将提供错误高亮显示和恰当的建议来帮助您节省时间。
Readonly properties are the properties that cannot be changed after initialization, that is, after a value is assigned to them.
PhpStorm 2021.3 将帮助您在代码中有效利用只读属性并确保它们得到正确使用。
专用的检查将确保只读属性仅在声明所在范围内(属性声明本身或类方法中)初始化。
由于只读属性必须始终为类型化属性,PhpStorm 将检查是否指定了类型声明。
只读属性不能具有默认值,但您可以在构造函数中将其初始化为提升属性,因此 PhpStorm 为其提供了一项快速修复。
在 PHP 8.1 中,您可以在初始化默认形参的值、静态变量、全局常量和特性实参时使用新的表达式。
PhpStorm 将验证此类用法并高亮显示无效的用例,例如作为类常量或属性提供新对象。
PHP 8.1 使您可以通过一等可调用语法获得对任何函数的引用。 现在,您不必再编写 $fn = Closure::fromCallable('strlen');
,而是可以使用更短的 $fn = strlen(...);
形式,PhpStorm 将为您提供 Alt+Enter 快速修复,以将您的代码转换为新语法。
PHP 8.1 引入了交叉类型,它们的值必须满足多项类型约束,而不仅限一项约束。
PhpStorm 现在将为这些结构提供代码补全,并检查以确保交叉类型未与联合类型组合。 如果您将交叉类型指定为 PHPDoc 注解,PhpStorm 也将能够正确解释。
PHP 8.1 为返回值引入了 never
类型。 如果函数被声明为 never
类型,则它将不会返回值,并且会抛出异常或结束脚本执行(就像 die()
、exit()
或 trigger_error()
函数一样)。
在 PHP 8.1 中,您可以声明 final
类常量以使其不会在子类中被重写,PhpStorm 将验证此类用例。
除了新功能之外,PHP 8.1 还弃用了一些功能,旨在使语言更加一致且易用。 PhpStorm 将帮助您定位此类已弃用的代码。 下面是几个示例:
建议使用 __serialize()
和 __unserialize()
魔术方法,取代 Serializable
接口。 在 PHP 8.1 中,您仍然可以使用 Serializable
,但前提是实现类同时使用了 __serialize()
和 __unserialize()
。 PhpStorm 2021.3 可以高亮显示不正确的代码,并提供了用于添加魔术方法的 Alt+Enter 快速修复。
在 PHP 8.1 中使用 $GLOBALS
超全局变量现已受到限制 – 不允许对作为一个整体的 $GLOBALS
执行写入或读取/写入操作。 PhpStorm 将高亮显示此类存在问题的用法。
PHP 尚未在语言级别上提供对泛型的支持,但是通过注解使用泛型已经相当常见。 使用集合、容器、工厂和其他应用程序时,它们将使代码更安全、更可预测。 PhpStorm 2021.3 通过 @template
注解扩展了对泛型的支持。
PhpStorm 引入了对 IteratorAggregate
接口的支持,对 Doctrine 集合的迭代现在开箱即用。
In the upcoming Laravel release, the illuminate/collections package will support generics annotations. PhpStorm 2021.3 为此类集合提供了更好的代码补全。
如果构造函数中具有泛型 @template
形参,并且您想通过将对象作为实参传递来指定类型,现在 PhpStorm 将能够推断正确的类型并提供代码补全。
早些时候,要移动类并更新其命名空间,您的唯一选项是在代码编辑器中使用移动重构 (F6)。 在 PhpStorm 2021.3 中,您可以改为在 Project(项目)视图中使用拖放操作。 这样,项目结构将在运行期间可见。 此外,您可以使用此技术移动多个类或整个文件夹,PhpStorm 将正确更新所有引用。
Inline method(内联方法)重构使您能够将对方法的调用替换为方法的内容,并删除方法本身。 在 PhpStorm 2021.3 中,重构得到了多项改进,并将覆盖更多用例。 例如,现已支持作为形参传递的非静态方法、方法链和箭头/匿名函数。
要使用此重构,请将文本光标置于方法上并按 Ctrl+Alt+N。 如果代码中存在仅使用一次的 private 方法,请按 Alt+Enter 并使用新的 Inline Method(内联方法)快速修复。
Inline Variable(内联变量)重构使您能够将对变量的引用替换为实际变量的值。 在 PhpStorm 2021.3 中,此重构支持内联 NOWDOC/HEREDOC
变量并包含多项实用性增强。
此外,PhpStorm 现在将能够检测使用一次的变量,并为您提供了可通过 Alt+Enter 应用的 Inline Variable(内联变量)快速修复。
在使用 SFTP 服务器进行部署时,您可以启用 rsync 来上传和下载文件和文件夹,这将显著提高传输速度。 对应的 Use rsync for download/upload(使用 rsync 进行下载/上传)选项位于部署服务器配置的 Advanced(高级)部分中。
可以在 Settings/Preferences | Tools | Rsync(设置/偏好设置 | 工具 | Rsync)下配置 rsync
可执行文件的路径。 在 macOS 和 Linux 平台上,它将很快可用。 For Windows, it is recommended to use Cygwin and OpenSSH.
PhpStorm 2021.3 支持重新传输上传失败的文件。 在这种情况下,请点击 File Transfer(文件传输)工具窗口中的 Retry(重试)链接。
现在,您可以在 Settings/Preferences | Tools | SSH Configurations(设置/偏好设置 | 工具 | SSH 配置)下为您的 SSH 配置指定 HTTP 或 SOCKS 代理服务器。
也可以使用全局 IDE 范围的代理。 为此,请在 Settings/Preferences | Appearance & Behavior | System Settings | HTTP Proxy(设置/偏好设置 | 外观和行为 | 系统设置 | HTTP 代理)下启用 Use global IDE proxy settings(使用全局 IDE 代理设置)复选框并提供代理详细信息。
PhpStorm 2021.3 提供了一个可以显示当前默认服务器的新状态栏微件。 当您需要处理多个环境时,您可以直接在微件中切换环境,而无需前往设置。
HTTP 客户端现已支持二进制响应。 如果收到的响应为图像,您可以直接在响应控制台中查看其预览。
HTTP 客户端现在可以将输出重定向到自定义文件或目录。 它支持使用两个运算符进行强制重定向和软重定向:
>>
运算符会创建一个新文件,如果此类文件已经存在,则会向文件名添加 -n
后缀。 >>!
运算符将重写已经存在的文件。 除了提供显式文件路径之外,您现在还可以使用新的预定义变量:{{$projectRoot}}
指向项目根文件夹,{{$historyFolder}}
指向请求历史记录文件夹。
在 PhpStorm 2021.3 中,可以命名您的 HTTP 请求了! 您可以使用 @name
提供标识符作为注释,也可以在请求分隔符 (###) 中提供文本。
然后,您可以从 Run Configuration(运行配置)、Run Anything(运行任何内容)或 Search Everywhere(随处搜索)对话框中通过 Services(服务)工具窗口,按名称调用请求。
在 PhpStorm 2021.3 中,Favorites(收藏夹)和 Bookmarks(书签)功能已合二为一,合并为 Bookmarks(书签)。 您可以按 F11,在特定行、文件或文件夹上添加书签。 添加的所有书签都将在统一的 Bookmarks(书签)工具窗口中可用。
可通过按 Ctrl 并点击符号来调用的 Show Usages(显示用法)对话框现已支持根据找到的用法显示源代码预览。 要启用预览,请点击 工具栏按钮。
我们在齿轮图标下的 Diff(差异)屏幕设置中添加了新的 Align Changes Highlighting(对齐更改高亮显示)选项。 此功能可改良 Diff(差异)的易读性,使未更改的行对齐并并排显示,特别适用于复杂修改。 这有助于您更清楚地查看已添加或移除的代码。
Checkout and Rebase onto Current(签出并变基到当前分支)操作可用于签出所选分支并将其变基到当前签出分支的顶部。 此操作以前仅适用于本地分支,但在 PhpStorm 2021.3 中,此操作也可以应用于远程分支。
如果您有一些提交准备发布,而其他提交仍在进行中,那么您可能需要仅推送您确定要发布的提交。 PhpStorm 2021.3 将使您可以推送您在 Git 工具窗口的 Log(日志)标签页中所选及其之前的提交。 选择并右键点击所需的提交,然后使用新的 Push All up to Here(推送此前所有提交)操作。
Settings/Preferences(设置/偏好设置)中的 Version Control(版本控制)页面已经简化以提升实用性,现在会列出所有可用设置。 Git 节点现在被划分为几个部分,对应最重要的流程:Commit(提交)、Push(推送)和 Update(更新)。 为 Directory mappings(目录映射)添加了一个单独的节点。 由于后台操作现在默认开启,Background(后台)节点已被移除。