如何将请求超全局标记为已弃用

How to mark request superglobals as deprecated

我正在尝试找到一种方法让 $_POST$_GET$_REQUEST 在 PhpStorm 中显示为警告或已弃用,因为我依赖于获取这些值来自 RequestInterface(PSR-7 样式)。

我试过在语言功能中禁用 superglobals 模块,但我可以使用带有 @deprecated 的 PHPDoc 获取我的 .php 文件,它似乎是从中选择一个随机实例项目代替。 (通常来自我设置 $_REQUEST var 来测试一些遗留代码的测试用例)

使用 PhpStorm,您可以覆盖默认存根文件。为此,您需要执行以下步骤。

  1. 克隆 https://github.com/JetBrains/phpstorm-stubs/.
  2. 导航至设置 |语言与框架 | PHP | PHP 运行时间.
  3. 高级设置 |默认存根路径 到新克隆的存储库。

  1. 打开外部图书馆 | PHP 运行时 |超全局 | _superglobals.php 在编辑器中,或者只是从任何全局变量用法导航到它的声明。
  2. 开始编辑文件并同意对非项目文件执行更改。

  1. @deprecated 添加到所需变量。

之后,所有已弃用的变量都将在完成弹出窗口中被删除。

不幸的是,有一个错误阻止它们在编辑器中被标记为已弃用(参见 WI-29019)。但我希望我们能尽快修复它。

此外,请记住,从现在开始,存根将不会与 PhpStorm 一起更新。所以你需要定期从 GitHub 拉取更新。此外,您可以从克隆的存储库中删除所有目录,但 superglobals。在这种情况下,PhpStorm 将对其余部分使用嵌入式存根。