PHPCPD 用于检测重复代码,直观的说就是复制粘贴再稍微改改
该工具作者已经 停止维护
安装
composer global require --dev sebastian/phpcpd
执行
phpcpd --log-pmd phpcpd_result.xml ./app
参数介绍 --log-pmd 将结果保存在phpcpd_result.xml 中
./app 是phpcpd扫描的项目目录
–suffix 指定扫描的文件后缀,可以出现多次以便指定多个后缀
–exclude 无需扫描的路径,也可出现多次指定多个路径
结果
标明那个文件的多少行到多少行是重复的
Jenkins中的使用
在项目构建步骤中增加 执行shell
#执行phpcpd
if `docker exec phpfpm82 /tmp/composer/vendor/bin/phpcpd >/dev/null 2>&1`; thenecho '开始执行phpcpd'
elsedocker exec phpfpm82 composer global require --dev sebastian/phpcpd
fidocker exec phpfpm82 /bin/sh -c "cd /var/www/workspace/$JOB_NAME/ && /tmp/composer/vendor/bin/phpcpd --log-pmd reports/phpcpd_result.xml ./app"
可视化结果
jenkins插件 DRY 已经停止下载,所以没有可视化的界面可用,具体见 https://plugins.jenkins.io/dry/
看到这里了,点个赞再走吧
PHP质量工具系列
PHP/JS质量工具,安全工具,Jenkins插件 总结
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