コーディング規約(PSR, CodeSniffer, 自動補正)

PHPのコーディング規約について解説します。「PSR」などよく知られた規約や、「PHP_CodeSniffer」、「PHP Coding Standards Fixer」について取り上げます。

PSR

PHPのコーディング規約としては、PHP-FIGが策定したPSRというが最も有名です。Laravelなど有名なフレームワークは、PSRに合わせてコーディングされているようです。

Laravel Coding Style

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を利用すると、コーディング規約に沿うよう自動修正してくれます。「コミット時にフックする設定をして、自動で統一化」という使い方もできます。

https://github.com/FriendsOfPHP/PHP-CS-Fixer

わくわくBank.
フリーランスのエンジニアとして活動してます。ここでは、ソフトウェア開発で必要とされる技術、用語、概念を整理しています。