クマのブログ

つまづいたところ、学びを書いていきます

PHP-CS-fixerで手軽に読みやすいコードに。

前提

背景

  • プロジェクトのReadmeにあった、初めて見るツールPHP-CS-Fixerを使ってみて便利

  • 実務未経験の時の自分が知ってれば役に立ったな、と思ったのでアウトプット

PHP-CS-fixerとは?

github.com

何か?

  • The PHP Coding Standards Fixerの略

  • ツールをインストールし、実行するだけで簡単に可読性の高いコーディングに変更してくれる

  • PHPのコーディング規約であるPSRを基準にしてコードを変更してくれるので、汎用性の高いセルフコードレビューが可能

  • PHP用のコードエディタPHPStormにもデフォルトで使えるようになってる(但し、PHPStorm自体が有料)

  • ただし「リーダブルコード」とかにある一般的なコーディング規約を網羅しきれているかは保証できない。

あくまで基準はPSR。

www.php-fig.org

なぜやるのか?

「可読性」の正解はなかなかわからない…(特に独学中は)

PSRを自分で読み込んで可読性向上を狙うのは手間…

といったコストをグンと落とすことができ、圧倒的な時短につながる

実際に使ってみた

コチラを参考にさせて頂いた

qiita.com

1、インストール

composerが既にインストールされていることが前提

f:id:kuma_kuma0121:20210821145331p:plain

composer.jsonがあるディレクトリで以下コマンドを実行

composer require --dev friendsofphp/php-cs-fixer

わーっと色々インストールされるのを不安げに待ちながら…

↓インストールの確認

./vendor/bin/php-cs-fixer --version

↓結果

f:id:kuma_kuma0121:20210821145611p:plain

2、整形箇所の確認

整形を実行する前に、整形が必要な箇所を確認

 ./vendor/bin/php-cs-fixer fix --dry-run <ディレクトリ名>

↓結果 f:id:kuma_kuma0121:20210821150120p:plain

※記事内にある--diff-format udiffを使った差分の表示形式指定については、既にver3以降はformatはデフォルトでudiffになっているので対応不要。やってもエラー吐くだけ。

f:id:kuma_kuma0121:20210821150402p:plain

↓参考

github.com

github.com

3,整形の実行

整形される箇所を確認したらあとは実行するだけ。

./vendor/bin/php-cs-fixer fix <ディレクトリ名>

↓結果

f:id:kuma_kuma0121:20210821152639p:plain

ものの数秒でPSRに準拠したコーディングが実現。

さらに。。。

  • PSRに準拠するだけでは物足りない方にはオリジナルのコーディングルールを作って適用させることができるらしい。

  • これにより、個人用コーディングルール(.php_cs.dist)とプロジェクトチーム共有用(.php_cs)で使い分けることができる。

  • 「自分でコーディングルールの内容を作るのは面倒」という方は以下記事参照。

Githubから.php_cs.distをインストールすることができ、デフォルトの.php_csよりも精度の高いコーディングルールを使うことができる

PHP-CS-Fixerの設定が面倒くさい人のためのルールセット - Qiita

所感

  • 自力で可読性の高いコードを書くのは難しい中、最低限の可読性を担保してくれるのはありがたい。

  • 手間もかからず、可読性を意識したコーディングを書くことができるので、これからエンジニアを目指す独学者には使って頂きたいツールです!