恥知らずのウェブエンジニア -web engineer, shameless

これは一歩を踏み出すことができない者たちのブログ

PSR-2(Coding Style Guide)を見ていく

要約ですので、所々省いている箇所あります。

オリジナルはこちら

www.php-fig.org

要点

PSR-2はPSR-1を継承/拡張した基本的なコーディング基準

開発者間でのコードリーディング時の認識のズレを減らすためのガイドライン

ルール自体にではなく、ルールを共有することに意味がある

概要

  • “coding style guide” PSR [PSR-1]を守る
  • インデントは4スペース
  • 1行内の文字数は上限はないが、120文字以内、できれば80文字以内に収める
  • namespaceの宣言後には空行を、use宣言ブロックの後にも空行入れる
  • classの開きブレースは次の行に、閉じブレースはボディ最後の次の行に
  • methodの開きブレースは次の行に、閉じブレースはボディ最後の次の行に
  • property と methodには必ずアクセス修飾子を。abstractfinalはアクセス修飾子に前に、staticはアクセス修飾子の後ろに
  • 制御構造の後には1スペース、メソッド呼び出しの場合は除く
  • 制御構造の開きブレースは同じ行で、閉じブレースはボディ最後の次の行で
  • 制御構造の開き丸括弧の後にはスペースを置かない、閉じ丸括弧の前にはスペースを置かない

例としてはこちら

<?php
namespace Vendor\Package;

use FooInterface;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;

class Foo extends Bar implements FooInterface
{
    public function sampleMethod($a, $b = null)
    {
        if ($a === $b) {
            bar();
        } elseif ($a > $b) {
            $foo->bar($arg1);
        } else {
            BazClass::bar($arg2, $arg3);
        }
    }

    final public static function bar()
    {
        // method body
    }
}

全般

ファイル

  • 改行はUnix LF
  • ファイル最後には空行を
  • ?>の閉じタグは不要

phpキーワード、True/False/Null

  • phpキーワード、true, false, nullは小文字で

methodの引数

  • 引数リストはの,の後にはスペースを
  • 引数にデフォルト値があるものは最後に
  • 引数を複数行にする場合は開き丸括弧の後に改行し、各行に1つずつ

PSR-3(Logger Interface)へ続く・・・ ここからが本番・・・

PSR-3: Logger Interface - PHP-FIG