PHPStan是一个开源的PHP静态分析工具,旨在帮助开发者发现和修复PHP代码中的问题。它通过分析PHP源代码,检查变量的类型、函数调用的参数和返回值,以及其他常见错误。PHPStan提供了准确的错误报告和警告,帮助开发者在编译前发现问题,提高代码的质量和可靠性。
安装
composer global require --dev phpstan/phpstan
注意,
linux上,需要将全局composer的可执行目录加入环境变量
目录一般情况下是/tmp/composer/vendor/bin
Centos 环境变量配置windows上,只需在环境变量path中加上composer路径,一般路径是
%APPDATA%\Composer\vendor\bin
配置
在项目的目录下新建phpstan.neon,粘贴以下内容并保存
parameters:errorFormat: checkstylelevel: 7paths:- app- config- routeexcludePaths:- app/command/Swagger.phpbootstrapFiles:- vendor/autoload.phpignoreErrors:- '#.*no value type specified in iterable type array#'- '#.*no type specified#'- '#Function .*? not found#'- '#undefined method .*?::join#'- '#undefined method .*?::group#'- '#app\\model.*has no return type specified#'- '#Call to an undefined method object::.*#'
文档解释:
errorFormat 生成报告的文件格式,支持 raw, table, checkstyle, json, junit, prettyJson, gitlab, github, teamcity,一般选择checkstyle、json、junit
level 错误报告级别 0-8 8最严格
paths 需要扫描的目录
excludePaths 需要排除的扫描目录或文件
bootstrapFiles启动时加载的文件
ignoreErrors需要忽略的错误,一般是误报类的,不过要仔细甄别,不能将真正的错误掩盖
执行
不带参
一般是用户执行
#在phpstan.neon目录下执行
phpstan analyze
带参
一般是用来自动化构建时使用
phpstan analyse -c /workpath/phpstan.neon --no-progress --error-format checkstyle --memory-limit 1G > /workpath/phpstan_result.xml
参数解释:
-c 指定phpstan的配置文件地址
–no-progress 不打印过程
–error-format checkstyle 指定输出文件格式
–memory-limit 1G 最大可用内存
将文件输出到/workpath/phpstan_result.xml
自动化构建(Jenkins)中使用
参考文章 jenkins插件之Warnings 项目配置一章中的phpstan章节