直接用 Composer 本地安装 PHPStan(composer require --dev phpstan/phpstan)并配置 phpstan.neon(level: 5,paths: [src, tests]),可静态检查类型、未定义变量等,支持 Laravel/Symfony 插件扩展,集成至 composer scripts、Git 钩子及 CI 流程。

直接用 Composer 安装 PHPStan 并配置基础分析,是 PHP 项目提升代码质量最轻量高效的方式之一。它不运行代码,只检查类型、语法、未定义变量等潜在问题,适合集成到 CI 或日常开发流程中。
安装 PHPStan 到项目中
推荐以 本地依赖 方式安装,避免全局版本冲突,也方便团队统一环境:
- 在项目根目录执行:
composer require --dev phpstan/phpstan - 安装完成后,可直接通过
vendor/bin/phpstan调用(Windows 下为vendor\bin\phpstan.bat) - 如需支持 Laravel、Symfony 等框架的扩展规则,再单独安装对应插件,例如:
composer require --dev phpstan/phpstan-symfony
创建基础配置文件 phpstan.neon
PHPStan 使用 phpstan.neon(Neon 格式,类似 YAML)管理配置。在项目根目录新建该文件:
parameters:
level: 5
paths:
- src
- tests
excludePaths:
- 'tests/Feature/*'
inferPrivatePropertyTypeFromConstructor: true-
level是核心参数:0~8,数字越大检查越严格;新项目建议从5起步,逐步升级 -
paths指定要分析的目录,通常为src和tests -
excludePaths可跳过暂时不处理的目录(如集成测试、生成代码) -
inferPrivatePropertyTypeFromConstructor启用后,能自动推断私有属性类型(PHP 7.4+ 构造函数赋值场景)
运行分析并理解常见输出
执行命令:vendor/bin/phpstan analyse
立即学习“PHP免费学习笔记(深入)”;
- 首次运行大概率会报错,比如“Call to an undefined method”或“Variable $x might not be defined”——这些正是静态分析的价值所在
- 每条错误包含文件路径、行号、错误类型和简短说明,例如:
src/Service/UserService.php:23: Call to an undefined method App\Entity\User::getFullName() - 若想快速验证配置是否生效,可先分析单个文件:
vendor/bin/phpstan analyse src/Service/UserService.php - 添加
--debug参数可查看详细加载过程,排查配置未生效问题
集成到开发与 CI 流程
让 PHPStan 成为日常习惯,而不是一次性任务:











