alfonsomthd / phpcc
一个用于自动化PHP代码检查的工具,可以作为git pre-commit钩子使用。
2.0
2017-12-15 07:19 UTC
Requires
- php: ^7.1.3
- friendsofphp/php-cs-fixer: ^2.0
- phpmd/phpmd: ^2.0
- symfony/console: ^4.0
- symfony/process: ^4.0
Requires (Dev)
- phpunit/phpunit: ^6.0
This package is auto-updated.
Last update: 2024-09-10 05:10:43 UTC
README
CLI工具,用于运行PHP代码检查,可以作为git pre-commit钩子使用。
请参阅下面的使用部分。
安装
安装composer
curl -LsS https://getcomposer.org.cn/installer -o composer-setup.php
php composer-setup.php && rm composer-setup.php
mkdir -p ~/.local/bin
mv composer.phar ~/.local/bin/composer
sudo ln -sf ~/.local/bin/composer /usr/local/bin/composer
安装PHP Code Checker
composer global require alfonsomthd/phpcc
sudo ln -sf $(composer global config --absolute vendor-dir 2>/dev/null)/alfonsomthd/phpcc/phpcc /usr/local/bin/phpcc
配置
以下任务将被执行
- 语法检查(lint)。
- 使用php-cs-fixer进行代码风格修复。
- 在检查暂存区文件时,如果有任何测试,则使用PHPUnit执行测试。
- 使用phpmd进行代码分析。
如果您想覆盖默认配置,请在项目根目录中创建一个名为phpcc.json的文件,具有以下结构(以下为带有默认配置值的示例)
{
"ignore": [],
"checks": {
"php-cs-fixer": {
"rules": "@PSR2,@PSR1,-psr0",
"fix": true
},
"phpmd": {
"ruleset": "",
"minimumpriority": 2
},
"phpunit": {
"config-file": "",
"allow-display": true
}
}
}
配置字段
ignore
与git类似,您可以通过在此字段中添加相对路径来忽略文件/文件夹。您还可以使用前缀
!
来否定路径,不忽略文件/文件夹。例如,以下配置忽略除目录
src
和tests
以外的所有项目"ignore": [".", "!src", "!tests"]
checks
php-cs-fixer
- rules: 如果未设置,将使用默认值(见上方示例)。有关允许的值,请参阅php-cs-fixer文档。
- fix: 如果未设置,默认值为true,仅当在git暂存区检查文件时。选项
--fix-cs
会覆盖所有其他设置。
phpmd
- ruleset: 规则集文件名的相对路径,或以逗号分隔的规则集文件名字符串。如果未设置,将使用phpcc规则集
phpmdRuleSet.xml
。有关phpmd已提供的规则集文件名,请参阅phpmd文档。 - minimumpriority: 如果未设置,将使用默认值(见上方示例)。请参阅phpmd文档。
- ruleset: 规则集文件名的相对路径,或以逗号分隔的规则集文件名字符串。如果未设置,将使用phpcc规则集
phpunit
- config-file: phpunit.xml的相对路径。如果您想生成一个新的配置文件,请运行
phpunit --generate-configuration
- allow-display: false以禁用进度显示。默认允许。在出错的情况下,此设置将被忽略,并将显示所有输出。
- config-file: phpunit.xml的相对路径。如果您想生成一个新的配置文件,请运行
使用方法
工具必须在项目根目录中运行(包含您的项目composer.json的目录)
cd <YOUR_PROJECT_ROOT_DIRECTORY>
显示帮助信息
phpcc -h
要检查文件或目录,将其作为第一个参数传递(例如)
phpcc src
检查文件或目录,修复代码风格错误
phpcc src --fix-cs
要检查git暂存区的PHP文件
phpcc
要在git pre-commit时运行,请执行以下操作
ln -sf /usr/local/bin/phpcc .git/hooks/pre-commit