tripomatic/php-code-quality

一组PHP代码质量工具

dev-master / 1.0.x-dev 2015-06-16 13:27 UTC

This package is not auto-updated.

Last update: 2024-09-28 18:05:17 UTC


README

一组适用于VCS的PHP代码质量工具。

Tripomatic\PhpCodeQuality 允许在VCS提交更改时自动检查PHP代码。目前支持 GitMercurial。该工具可以执行以下预提交检查

  1. 如果 composer.jsoncomposer.lock 都进行了版本控制,则检查它们是否同步。
  2. 所有更改或添加的PHP文件都会使用 php -l 检查语法错误。
  3. 所有更改或添加的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 installcomposer update 时将自动安装 pre-commit 代码检查钩子。

其他

如果您使用制表符缩进,则此包还包含一个用于 IndentWithTabsFixerPHP-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 许可协议授权。