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 となっている。
PSR-12 の対応状況
PhpStorm (=Intellij)は2019.3バージョンで PSR-12 に対応しているとのリリースが出ていた。
コーディング規約のチェックを行うツールとして、PHP_CodeSniffer と PHP-CS-Fixer が有名だが、
- PHP_CodeSniffer は PSR-12 に対応済み
- PHP-CS-Fixer は まだ対応中(2020年9月時点)
となっている。
PHP-CS-Fixer のほうが(若干だが)人気のあるツールで、私も PHP-CS-Fixer のほうが使いやすいと感じているが、PSR-12 対応としては PHP_CodeSniffer に遅れを取っている。
PHP-CS-Fixer にとって PSR-12 は最重要であるはずなのに、ここまで開発に遅れが生じているのはかなり気になる。
仕方がないので PHP_CodeSniffer を採用したが、使い慣れていた PHP-CS-Fixer を使いたいため、早く対応して欲しい。