Phpstorm怎样配置PHP错误级别_Phpstorm配置PHP错误级别途径【分享】

PhpStorm 需同时配置 PHP CLI 错误报告(error_reporting=32767)和启用编辑器 Inspections(如 Deprecated functions、Undefined variable),并检查 phpstan/phpcs 是否干扰,才能全面捕获运行时与静态错误。

PhpStorm 默认不会主动报出所有 PHP 级别错误(比如 E_DEPRECATEDE_USER_NOTICE),它依赖两个独立机制:PHP 解释器本身的错误报告设置,以及 PhpStorm 自带的静态代码检查(Inspections)。只调其中一个,很可能“看着没报错,但运行时炸了”或者“满屏红色警告却实际能跑”。

确认 PHP CLI 解释器是否启用完整错误报告

PhpStorm 的“运行/调试”和“控制台”(Terminal / PHP Script 运行)用的是你配置的 PHP CLI 可执行文件。如果这个 PHP 本身关掉了 E_DEPRECATEDE_STRICT,PhpStorm 就拿不到这些错误信息。

  • 打开 File → Settings → Languages & Frameworks → PHP,检查

    CLI Interpreter
    是否指向正确的 php 路径(不是 php-cgi
  • 点击右侧 ...Environment variables,添加或确认:error_reporting=32767(即 E_ALL | E_STRICT
  • 更稳妥的方式是直接修改该 PHP 的 php.ini:找到对应 CLI 的配置文件(运行 php --ini 查看),确保有:
    error_reporting = E_ALL | E_STRICT
  • 改完后重启 PhpStorm,再在 Run → Run... 里执行一个含 @trigger_error('xxx', E_USER_DEPRECATED) 的脚本,看控制台是否输出

开启 PhpStorm 内置 PHP 检查(Inspections)

这部分不依赖 PHP 运行时,是 PhpStorm 基于语法树做的静态分析,对未定义变量、类型不匹配、废弃函数调用等特别有用,但默认可能被关掉或设为弱提示。

  • 进入 Settings → Editor → Inspections → PHP
  • 勾选关键项:Deprecated functions and classesUndefined variablePossible null referenceUnused symbol
  • 注意右侧 Severity 下拉菜单:把 Warning 改成 Error 才会在编辑器里标红;若只想高亮不打断,选 Weak Warning
  • 如需全局生效,确保顶部 Scope 是 Project Files(而非 PHP Built-in Server 这类子项)

检查 phpstan / psalm / phpcs 是否干扰或覆盖原生提示

如果你项目里配了 phpstanphpcs 并启用了 PhpStorm 集成(Settings → Languages & Frameworks → PHP → Quality Tools),它们的规则优先级可能高于 PhpStorm 原生检查,导致“明明开了 Deprecated 检查,却没提示”。

  • 临时禁用这些工具:取消勾选 Enable,看原生提示是否恢复
  • 若需保留,检查它们的配置文件(如 phpstan.neon)是否显式关闭了 deprecation 规则
  • phpcs 特别容易漏:确认 ruleset.xml 中没有 这类排除项

最容易被忽略的是:CLI 的 php.ini 和 Web Server(如内置 PHP Server 或 Apache)的 php.ini 是两份配置。你在浏览器里看到的 E_DEPRECATED 提示,跟 PhpStorm 运行脚本时看到的,根本不是同一个开关控制的。务必分清场景,分别验证。