tripomatic / php-code-quality
一组PHP代码质量工具
dev-master / 1.0.x-dev
2015-06-16 13:27 UTC
Requires
- php: >=5.4.0
- fabpot/php-cs-fixer: ^1.8
- symfony/console: ^2.7
- symfony/process: ^2.7
This package is not auto-updated.
Last update: 2024-09-28 18:05:17 UTC
README
一组适用于VCS的PHP代码质量工具。
Tripomatic\PhpCodeQuality 允许在VCS提交更改时自动检查PHP代码。目前支持 Git 和 Mercurial。该工具可以执行以下预提交检查
- 如果
composer.json和composer.lock都进行了版本控制,则检查它们是否同步。 - 所有更改或添加的PHP文件都会使用
php -l检查语法错误。 - 所有更改或添加的PHP文件都会使用 PHP-CS-Fixer 检查编码风格。此检查需要存储库根目录中的编码风格定义文件
.php_cs。
安装
使用 Composer 安装 Tripomatic\PhpCodeQuality
$ composer require --dev tripomatic/php-code-quality
要在每次提交前设置自动代码检查,请将以下行添加到您的 pre-commit 钩子中
php vendor/bin/php-code-quality check-staged-files
该工具自动检测存储库类型(Git、Mercurial)并检查要提交的更改。
在 Git 中,这些更改不必反映工作树,因此实际更改将被获取到一个临时目录中,并在那里控制文件。该目录将自动删除。
使用 Composer 自动设置
还可以使用 Composer 的脚本 自动设置 pre-commit 钩子。例如,您可以将以下行添加到您的 composer.json
"scripts": { "pre-install-cmd": "sh git/install-hooks.sh", "pre-update-cmd": "sh git/install-hooks.sh" }
并创建一个包含以下内容的 git/install-hooks.sh 文件
#!/bin/sh ROOT="$(cd "$(dirname "$0")"/..; pwd -P)" echo "Installing GIT hooks" rm -rf ${ROOT}/.git/hooks ln -s ${ROOT}/git/hooks ${ROOT}/.git/hooks chmod +x ${ROOT}/.git/hooks/*
最后,创建一个包含以下内容的 git/hooks 目录和一个 pre-commit 文件
#!/bin/sh ROOT="$(cd "$(dirname "$0")"/../..; pwd -P)" php ${ROOT}/vendor/bin/php-code-quality check-staged-files
将 git 目录添加到存储库中,这样在 composer install 和 composer update 时将自动安装 pre-commit 代码检查钩子。
其他
如果您使用制表符缩进,则此包还包含一个用于 IndentWithTabsFixer 的 PHP-CS-Fixer。在 .php_cs 中安装很容易
return Symfony\CS\Config\Config::create() ->level(Symfony\CS\FixerInterface::SYMFONY_LEVEL) ->addCustomFixer(new Symfony\CS\Fixer\Contrib\IndentWithTabsFixer()) ->fixers([ '-indentation', # turn off the PSR-2 rule 'indent_with_tabs', ]);
一个完整的例子可以是这个存储库的 .php_cs。
许可协议
Tripomatic\PhpCodeQuality 根据 MIT 许可协议授权。