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: checkstyle
level: 7
paths:
- app
- config
- route
excludePaths:
- app/command/Swagger.php
bootstrapFiles:
- vendor/autoload.php
ignoreErrors:
- '#.*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章节
转载请保留出处,都看到这里了,点个赞再走吧
PHP质量工具系列
PHP/JS质量工具,安全工具 总结
TOP 6 PHP代码质量工具
PHP质量工具系列之php-depend
PHP质量工具系列之phpmd
PHP质量工具系列之phpcpd
PHP质量工具系列之phploc
PHP质量工具系列之paslm
PHP质量工具系列之phpstan
PHP质量工具系列之Owasp dependency-check
PHP质量工具系列之php_codesniffer
PHP质量工具系列之phpunit
PHP质量工具系列之xhprof
SBOM生成之CycloneDX
CI/CD之Jenkins插件使用系列
jenkins插件之Jdepend
jenkins插件之plot
jenkins插件之dependency-check
jenkins插件之Warnings
jenkins插件之xunit