Open6

docker & php-cs-fixer

opparaoppara
% tree -a
.
├── .php-cs-fixer.cache
├── .php-cs-fixer.dist.php
└── src

% docker run --rm -v $(pwd):/data cytopia/php-cs-fixer:3-php8.1 fix --dry-run --diff 
opparaoppara
.php-cs-fixer.dist.php
<?php
declare(strict_types=1);

$finder = PhpCsFixer\Finder::create()
    ->exclude('vendor')
    ->in([
        __DIR__ . '/src',
    ]);

$config = new PhpCsFixer\Config();

return $config
    ->setFinder($finder)
    ->setRiskyAllowed(true)
    ->setRules(['@PSR12' => true])
    ->setUsingCache(true);
opparaoppara

実行

% docker run --rm -v $(pwd):/data cytopia/php-cs-fixer:3-php8.1 fix
opparaoppara

lefthook を試す

lefthook.yml
pre-commit:
  commands:
    php-cs-fixer:
      run: docker run --rm -v "$(pwd):/project" -w /project jakzal/phpqa php-cs-fixer fix

実行

% lefthook run pre-commit

hook に登録

% lefthook install

既存の hook は *.old と言う名前でバックアップされる。。