PHPのコーディング規約について解説します。「PSR」などよく知られた規約や、「PHP_CodeSniffer」、「PHP Coding Standards Fixer」について取り上げます。
PSR
PHPのコーディング規約としては、PHP-FIGが策定したPSR
というが最も有名です。Laravelなど有名なフレームワークは、PSRに合わせてコーディングされているようです。
PSRのコーディング規約については、http://www.php-fig.org/psr/で確認できます。ここでは、PSR-1
PSR-2
PSR-4
について簡単に紹介します。日本語に訳してくださっているサイトもあるので、合わせて紹介します。
PSR-1
PSR-1では、基本コーディング規約(クラスやメソッドの命名規則など)についてまとめられています。下記サイトが参考になります。
http://www.infiniteloop.co.jp/docs/psr/psr-1-basic-coding-standard.html
特におさえておきたいポイントは以下の通りです。
- 新たなシンボル(クラス、関数、定数など)を宣言するためのファイルと、副作用のある処理を行うためのファイルは分ける。
- クラス名は、StudlyCaps(単語の先頭文字を大文字で表記)記法で定義
- クラス定数は全て大文字とし、区切り文字にはアンダースコアを用いて定義
- メソッド名はcamelCase記法で定義
PSR-2
PSR-2では、PSR-1に準拠した具体的なコードの書き方についてまとめられています。下記サイトが参考になります。
http://www.infiniteloop.co.jp/docs/psr/psr-2-coding-style-guide.html
特におさえておきたいポイントは以下の通りです。
- インデントには4つのスペースを使用し、タブは使用してはいけない。
- クラスの開き括弧は次の行に記述しなければいけない。また閉じ括弧は本文最後の次の行に記述しなければいけない。
- メソッドの開き括弧は次の行に記述しなけばいけない。また閉じ括弧は本文最後の次の行に記述しなければいけない。
- PHPの予約語は小文字で記述しなければいけない。PHP定数であるtrue、false、nullは小文字で記述しなければいけない。
PSR-4
PSR-4では、オートロードの標準記法(PSR-0の上位互換) についてまとめられています。
PHP_CodeSniffer
( コーディングスタイルチェック )
PHP_CodeSniffer
を利用すると、作成したコードがPSR2など、どれかひとつの規約に準拠しているか確認できます。
https://github.com/squizlabs/PHP_CodeSniffer
PHP Coding Standards Fixer
( 自動補正 )
PHP Coding Standards Fixer
を利用すると、コーディング規約に沿うよう自動修正してくれます。「コミット時にフックする設定をして、自動で統一化」という使い方もできます。