LoginSignup
4
2

More than 5 years have passed since last update.

PRS-0/1/2 のコード規約概要

Posted at

PSR 0/1/2 の関係性

  • PSR-0 「名前空間に関する規約」
  • PSR-1 「名前空間 クラスについては、PSR-0に準拠すること」
  • PSR-2 「PRS-1のコーディングスタイルに準拠すること」

PSR-0

  • 名前空間は\<Vendor Name>\(<Namespace>\)*<Class Name>とすること
  • 必ずトップレベルのベンダー名を持つこと。
  • 名前空間のセパレータ \ をディレクトリ区切りとして、適切にファイルシステムからクラスを読み込める状態であること
  • 拡張子は.php とする。

PSR-4

  • PSR-0 との併用が可能
  • クラスには インターフェイスやトレイト及び同様の構造を含む。
  • _ に特別な意味を持たせることをやめる。
  • クラス名は全て大文字小文字を区別すること。

PSR-1/2

命名規則

  • アンダースコアはじめの変数名は禁止
  • 変数名はスネークケースも、キャメルケースもどっちもOKだけど、適切なスコープ内での統一はとること
  • クラス名は 先頭大文字のキャメルケース
  • クラス定数は アンスコ 区切りの大文字で
  • メソド名は 先頭小文字のキャメルケース

制御構造

  • 制御構造の開始時には スペースを一つ開ける(if (true) {)
  • 制御構造の { は同じ行に記述する。
  • 制御構造の } は最終行の次の行に記述する。
  • else if ではなく elseif
  • breakしないswitch 文には その旨を明示的にコメントする。
<?php
if ($expr1) {
    // if body
} elseif ($expr2) {
    // elseif body
} else {
    // else body;
}
<?php
foreach ($iterable as $key => $value) {
    // foreach body
}
<?php
try {
    // try body
} catch (FirstExceptionType $e) {
    // catch body
} catch (OtherExceptionType $e) {
    // catch body
}

クラス

  • アクセス修飾子(public/protected など)は必須
  • abstract / final はアクセス修飾子の前
  • static はアクセス修飾子の後
  • 制御構造の()と異なり、メソドや関数呼び出しの()の前にはスペースをけてはいけない。
  • メソドや関数呼び出しの引数リストが複数行に渡る場合、インデントを付けて1行に一つの引数を定義する。閉じカッコは最後の引数の次の行に1行で記述する。

  • クラス、メソドの { は次の行に記述する。

  • メソドの引数リストは hoge($arg1, &$arg2, $arg3 = []) のように , の後ろにスペースを添えて記述する

  • 引数が多い場合は、最初の引数から行を変え、インデントを付けて1行に一つの引数を定義する。 ブロックの開始行は ){とする。

  • extends と implements は同じ行に記述する。

  • implements のリストは、インデントを付与して 複数行に分割することも可。ただしその場合1行に一つのインターフェイスを記述する。

class Hoge extends Piyo implements
    \Fooable,
    \Barable
{

レイアウト

  • 名前空間定義の後には空行を挟む
  • use 定義ブロックの後にも空行を挟む

その他

  • 文字コードは utf8 でBOMなし
  • 改行コードは LF
  • インデントはスペースで4つ分
  • ファイル最後には必ず空行
  • PHPのみが書かれたファイルでは ?> を省略する。
  • クラス、関数などの宣言ファイルと、処理系のファイルは分ける
  • 一行に複数のステートメントは禁止
  • 予約後は trueなど小文字で表示する。

出展

http://www.php-fig.org/psr/psr-0/
http://www.php-fig.org/psr/psr-1/
http://www.php-fig.org/psr/psr-2/
http://www.php-fig.org/psr/psr-4/

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2