PhpStorm 默认启用基础语法检查,需在 Settings > Editor > Inspections 中手动开启 PHP 高级规则(如 Unused symbol);团队规范需集成 PHP_CodeSniffer、PHPStan 或 Psalm;suppress 注解须匹配工具类型且配置生效;代码审查应聚焦变更部分的高风险 warning。

PhpStorm 里怎么开启自动代码检查
PhpStorm 默认就开着基础语法检查,但很多人没注意到它其实能实时标出潜在问题——不是等你提交才报错,而是写的时候就提示。关键在 Settings > Editor > Inspections 里是否启用了对应语言规则。
- PHP 相关检查默认只开「Syntax」和「Undefined variable」这类硬错误,
Unused symbol、Possible null reference这类需要手动勾选 - 项目级配置优先于全局,如果
.idea/inspectionProfiles/下有自定义 profile,可能覆盖你的设置 - 检查强度分「On-the-fly」和「Batch」两种:前者影响编辑体验(比如卡顿),后者只在手动触发
Code > Inspect Code时跑全量
怎么让 PhpStorm 把团队规范当红线来标
光靠内置规则不够,比如你们规定必须用 strict_types=1、禁止 echo 输出、函数必须有 PHPDoc——这些得靠自定义 inspection 或外部工具集成。
- 用
PHP_CodeSniffer配合phpcs.xml:在Settings > Languages & Frameworks > PHP > Quality Tools里填好路径和标准名(如PSR12) - 启用后,违规行会带波浪线,悬停看具体哪条规则没过;但注意:
phpcs不检查逻辑错误,只管格式和基础约定 - 别把
phpstan或psalm当成可选插件——它们能发现类型不匹配、未返回值等更深层问题,配置路径也在同一位置
为什么有些警告点了「Suppress」却还在
点右键选 Suppress for statement 或 Suppress for class 后还报,大概率是 suppression 注解没生效,或者被 IDE 忽略了。
- 确认生成的是正确注解:
// @phpstan-ignore-next-line和// @noinspection PhpUnused不通用,得按检查工具类型配 - 某些 inspection 不支持 inline suppress,比如「Missing PHPDoc」只能关掉整条规则,或加
@noinspection到函数上方 - 如果用了
phpcs,suppress 要写成// phpcs:ignore,且需在phpcs.xml里开启ignoreErrors支持
Code Review 时怎么快速定位高风险变更
人工扫 diff 效率低,PhpStorm 的 Local History 和 Git tool window 结合 inspection,能筛出真正要盯的代码块。
立即学习“PHP免费学习笔记(深入)”;
- 右键文件 →
Git > Compare with Revision,再点顶部的Inspect Code按钮,只检查改动部分的 warning - 对新增函数或修改逻辑的行,重点看
Unused parameter、Variable might not be defined这类 runtime 风险项 - 别信「没报错就安全」——比如
array_key_exists($key, $arr)被误写成isset($arr[$key]),静态检查很难发现,得靠单元测试覆盖
真正难的不是打开哪个开关,而是判断哪些 warning 该立刻修、哪些可以留到下个迭代——这取决于你项目的错误容忍度和上线节奏。别让工具替你做决策。

















