最近突然对代码质量检查感兴趣,决定对公司项目的代码冗余进行彻查。经过搜索发现一款不错的工具,针对复制粘贴的代码有不错的识别率,在此推荐。
0x00 准备
项目地址:https://github.com/sebastianbergmann/phpcpd
0x01 安装
- 直接下载代码包
wget https://phar.phpunit.de/phpcpd.phar
chmod +x phpcpd.phar
- 或使用 Composer 全局安装
composer global require sebastian/phpcpd
0x02 使用
使用方法非常简单,只要带上代码文件夹路径即可。
php phpcpd.phar <PATH_TO_YOUR_SRC>
实际使用时遇到一个小问题,在分析大概 20w 行代码时,报错提示内存占用超出限制,解决方案:
php -d memory_limit=1024M phpcpd.phar <PATH_TO_YOUR_SRC>
如上。