如何将PhpCsFixer限制为暂存文件



我在一个使用ComposerGit进行版本控制的项目中使用PhpCsFixer

当我启动PhpCsFixer时,该工具会更新所有文件。我正在寻找解决方案:

  • 以限制对修改的文件的修复
  • 以限制对暂存文件的修复

我已经尝试通过composercomposer fix-staged-files创建一个命令,但它会影响所有文件。

...
"scripts": {
...
"fix-staged-files": "php-cs-fixer fix --config=quality/.php_cs.dist --allow-risky yes ",
...
}

有一节解释了如何只检查更改的文件:https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/v3.0.0/doc/usage.rst#using-ci 上的php-cs修复程序

但我从来没有用过,为什么不简单地在缓存中回复呢?当您第一次运行fixer时,它会构建一个缓存,并且每次连续运行都只检查自上次运行以来修改过的文件。

命令:

$ php ./vendor/bin/php-cs-fixer fix --using-cache=no 
--config .php-cs-fixer.dist.php  --diff --allow-risky=yes 
--path-mode=intersection -- 
$(git diff --name-only  --diff-filter=ACMRTUXB 
$(git cherry origin/master | head -1 | awk '{print $2}')..HEAD)

或别名样式:

# /etc/bash.bashrc
function ff(){
php ./vendor/bin/php-cs-fixer fix --using-cache=no --config .php-cs-fixer.dist.php  --diff --allow-risky=yes --path-mode=intersection -- $(git diff --name-only  --diff-filter=ACMRTUXB $(git cherry origin/master | head -1 | awk '{print $2}')..HEAD)
}
export -f ff

最新更新