前提
背景
プロジェクトのReadmeにあった、初めて見るツールPHP-CS-Fixerを使ってみて便利
実務未経験の時の自分が知ってれば役に立ったな、と思ったのでアウトプット
PHP-CS-fixerとは?
何か?
The PHP Coding Standards Fixerの略
ツールをインストールし、実行するだけで簡単に可読性の高いコーディングに変更してくれる
PHPのコーディング規約である
PSR
を基準にしてコードを変更してくれるので、汎用性の高いセルフコードレビューが可能PHP用のコードエディタ
PHPStorm
にもデフォルトで使えるようになってる(但し、PHPStorm自体が有料)ただし「リーダブルコード」とかにある一般的なコーディング規約を網羅しきれているかは保証できない。
あくまで基準はPSR。
なぜやるのか?
「可読性」の正解はなかなかわからない…(特に独学中は)
PSRを自分で読み込んで可読性向上を狙うのは手間…
といったコストをグンと落とすことができ、圧倒的な時短につながる
実際に使ってみた
コチラを参考にさせて頂いた
1、インストール
composerが既にインストールされていることが前提
composer.jsonがあるディレクトリで以下コマンドを実行
composer require --dev friendsofphp/php-cs-fixer
わーっと色々インストールされるのを不安げに待ちながら…
↓インストールの確認
./vendor/bin/php-cs-fixer --version
↓結果
2、整形箇所の確認
整形を実行する前に、整形が必要な箇所を確認
./vendor/bin/php-cs-fixer fix --dry-run <ディレクトリ名>
↓結果
※記事内にある--diff-format udiff
を使った差分の表示形式指定については、既にver3以降はformatはデフォルトでudiff
になっているので対応不要。やってもエラー吐くだけ。
↓参考
3,整形の実行
整形される箇所を確認したらあとは実行するだけ。
./vendor/bin/php-cs-fixer fix <ディレクトリ名>
↓結果
ものの数秒でPSRに準拠したコーディングが実現。
さらに。。。
PSRに準拠するだけでは物足りない方にはオリジナルのコーディングルールを作って適用させることができるらしい。
これにより、個人用コーディングルール(.php_cs.dist)とプロジェクトチーム共有用(
.php_cs
)で使い分けることができる。「自分でコーディングルールの内容を作るのは面倒」という方は以下記事参照。
Githubから.php_cs.dist
をインストールすることができ、デフォルトの.php_cs
よりも精度の高いコーディングルールを使うことができる
PHP-CS-Fixerの設定が面倒くさい人のためのルールセット - Qiita
所感
自力で可読性の高いコードを書くのは難しい中、最低限の可読性を担保してくれるのはありがたい。
手間もかからず、可読性を意識したコーディングを書くことができるので、これからエンジニアを目指す独学者には使って頂きたいツールです!