猫でもわかるWebプログラミング

試行錯誤しながらエンジニア(プログラマー)として働く猫のブログ。技術的な話や、働き方の話、読書録とか、試行錯誤している日常の話。

新しいPHPコーディング規約 PSR-12

f:id:yoshiki_utakata:20200923212930p:plain

PHP のコーディング規約

PHP は PHP-Fig という団体で様々な規約が決められているが、2019年8月、PSR-2に変わり、PSR-12 という新たなコーディング規約が採用された。

PSR-12 が出るまでは、PSR-1, PSR-2, PSR-4 あたりが PHP のコーディング規約となっていた。

  • PSR-1 は基本的なコーディング規約
  • PSR-2 は PSR-1 に加え、もう少し細かいところまで決められたコーディング規約
  • PSR-4 は正確にはコーディング規約ではないが、オートローダーの規約で、コードを書く時に必ず知っておかなければならない規約ではある

この中で PSR-2 が PSR-12 に置き換わることで、

  • PSR-1
  • PSR-12
  • PSR-4

PHP のコードを書く上で、まずはこの3つの PSR を理解することが重要となる。

PHP-FIG のページも更新されて、 Autoloading には PSR-4 、 Coding Styles には PSR-1 と PSR-12 となっている。

www.php-fig.org

PSR-12 の対応状況

PhpStorm (=Intellij)は2019.3バージョンで PSR-12 に対応しているとのリリースが出ていた。

blog.jetbrains.com

コーディング規約のチェックを行うツールとして、PHP_CodeSniffer と PHP-CS-Fixer が有名だが、

  • PHP_CodeSniffer は PSR-12 に対応済み
  • PHP-CS-Fixer は まだ対応中(2020年9月時点)

となっている。

github.com

PHP-CS-Fixer のほうが(若干だが)人気のあるツールで、私も PHP-CS-Fixer のほうが使いやすいと感じているが、PSR-12 対応としては PHP_CodeSniffer に遅れを取っている。

github.com

PHP-CS-Fixer にとって PSR-12 は最重要であるはずなのに、ここまで開発に遅れが生じているのはかなり気になる。

仕方がないので PHP_CodeSniffer を採用したが、使い慣れていた PHP-CS-Fixer を使いたいため、早く対応して欲しい。