tiagohillebrandt / phpcs-diff
基于git diff检测代码规范违规。
Requires
- php: >=7.3.0
- ext-gettext: *
- ext-json: *
- ext-xml: *
- league/climate: ^3.8
- squizlabs/php_codesniffer: ^3.10
Requires (Dev)
- ext-mbstring: *
- ext-phar: *
- phpunit/php-code-coverage: ^9.2
- phpunit/phpunit: ^7.5.20 || ^8.5.21 || ^9.5.10
README
phpcs-diff
基于git diff
检测定义的代码规范违规。
要求
phpcs-diff
的最新版本需要PHP版本7.3.0或更高。
此项目还依赖于squizlabs/php_codesniffer
,该依赖用于通过phpcs
获取失败的违规。
最后,还安装了league/climate
包,用于处理控制台输出,但这个依赖可能在未来的版本中删除。
安装
Composer
如果您使用Composer,可以使用以下命令全局安装phpcs-diff
:
composer global require tiagohillebrandt/phpcs-diff
您也可以将phpcs-diff
作为开发依赖项安装到您的项目中
composer require --dev tiagohillebrandt/phpcs-diff
或者,您也可以在您的composer.json
文件中手动包含对tiagohillebrandt/phpcs-diff
的依赖。例如
{ "require-dev": { "tiagohillebrandt/phpcs-diff": "^3.0" } }
然后您可以从vendor bin目录运行phpcs-diff
./vendor/bin/phpcs-diff
Git Clone
您还可以下载phpcs-diff
的源代码,并创建到您的/usr/bin
目录的符号链接
git clone https://github.com/tiagohillebrandt/phpcs-diff.git
cd phpcs-diff
php bin/phpcs-diff main -v
您也可以将到/usr/bin
目录的符号链接添加到您的系统中
ln -s phpcs-diff/bin/phpcs-diff /usr/bin/phpcs-diff
入门指南
基本用法
phpcs-diff <current-branch> <base-branch> -v
在这个例子中,当前分支与main
分支进行比较。phpcs-diff
会执行以下diff语句:
git diff current-branch main
请注意
-v
标志是可选的,在处理过程中提供详细输出。current-branch
参数是可选的。如果未指定,phpcs-diff
将使用通过git rev-parse --verify HEAD
获得的当前提交哈希值。- 默认情况下,
phpcs-diff
会在项目的根目录中查找ruleset.xml
文件。要使用不同的规则集文件或标准,请使用--standard
选项指定它。
运行phpcs-diff
后,可执行文件将返回类似于以下内容的输出:
########## START OF PHPCS CHECK ##########
module/Poject/src/Console/Script.php
- Line 28 (WARNING) Line exceeds 120 characters; contains 190 characters
- Line 317 (ERROR) Blank line found at end of control structure
########### END OF PHPCS CHECK ###########
自定义标准和规则集文件
phpcs-diff
允许您指定自定义编码标准和规则集文件以满足您的需求。例如,要使用预定义的标准如PSR-12,您可以运行
phpcs-diff --standard=PSR12 main
您可以在PHP_CodeSniffer的GitHub仓库中找到可用的标准列表。
要应用自定义规则集文件,只需使用
phpcs-diff --standard=phpcs.xml.dist main
这些选项可以让您根据特定的编码标准和项目需求自定义代码分析。
关于
phpcs-diff
基于git diff
检测定义的代码规范违规。它使用来自PHP_CodeSniffer项目的phpcs
。
此项目提供了以下好处:
- 通过仅验证修改的文件而不是整个代码库来加速CI/CD管道。
- 便于迁移遗留代码库,使代码库逐步符合编码标准,而不必承担一次性大量修改的风险。
此可执行文件通过检查与基本分支相比的更改行,对这些文件的失败违规进行检查。这确保了任何新或更改的代码都将符合规范。
随着时间的推移,这种方法将帮助您的代码库变得更加符合编码标准,您最终可能达到可以在整个代码库上运行phpcs
的点。
Fork
本项目源自于 olivertappin/phpcs-diff 库。它被创建是为了确保更频繁的更新,因为原始仓库似乎已被遗弃。