概要
- Laravelの開発環境にPHP-CS-Fixerを導入する方法をまとめる。
方法
-
アプリ名ディレクトリに移動して下記コマンドを実行してtoolsディレクトリとその直下にphp-cs-fixerディレクトリを設置する。
cd アプリ名ディレクトリ mkdir -p tools/php-cs-fixer
-
アプリ名ディレクトリで下記コマンドを実行して、先に作成したディレクトリを指定してphp-cs-fixerのライブラリ本体をインストールする。(docker環境の場合、
$ docker-compose exec php composer require --working-dir=tools/php-cs-fixer friendsofphp/php-cs-fixer
を実行するか、PHPのコンテナに入り、アプリ名ディレクトリに移動して下記コマンドを実行する。)composer require --working-dir=tools/php-cs-fixer friendsofphp/php-cs-fixer
-
アプリ名ディレクトリに
.php-cs-fixer.dist.php
ファイルを作成して下記の様に記載する。(laravelのコードをgit管理しているならこのファイルもgit管理することをおすすめする)アプリ名ディレクトリ/.php-cs-fixer.dist.php<?php declare(strict_types=1); $finder = PhpCsFixer\Finder::create() // チェックするディレクトリの指定 ->in([ __DIR__ . '/app', __DIR__ . '/config', __DIR__ . '/database/seeders', __DIR__ . '/routes', __DIR__ . '/tests', ]); $config = new PhpCsFixer\Config(); return $config ->setRiskyAllowed(true) ->setRules([ '@PSR2' => true, ]) ->setFinder($finder);
-
下記コマンドを実行してエラーが出なければ導入完了(docker環境の場合、
$ docker-compose exec php ./tools/php-cs-fixer/vendor/bin/php-cs-fixer
を実行するか、PHPのコンテナに入り、アプリ名ディレクトリに移動して下記コマンドを実行する。)./tools/php-cs-fixer/vendor/bin/php-cs-fixer
2022/06/20追記
-
tools直下のvendorディレクトリをgitの管理から外したい場合下記の内容の
.gitignore
ファイルをtools直下に設置すれば良い。.gitignore.php-cs-fixer.cache /tools/php-cs-fixer/vendor
-
リポジトリで一個の
.gitignore
ファイルで終わらせたいならメインの.gitignoreファイル
からの相対パスで当該tools直下の/vendorディレクトリを指定する。 -
ただし/vendorをgit管理下から外した場合、セットアップ時などのcomposer install実行するときにアプリ名ディレクトリとtoolsディレクトリの二箇所で実行する必要があると思う。
2022/08/29追記
-
クローンしたら通常のアプリ名ディレクトリでのcomposer installとは別に下記を実行してphp-cs-fixerをインストールする必要あり。
composer install --working-dir=tools/php-cs-fixer
参考文献