LoginSignup
39
43

More than 5 years have passed since last update.

PHPのコーディング規約に関して(PSR-2)

Last updated at Posted at 2017-03-13

コーディングルールって人によってまちまちだったりして、時として「うわ!このソース読みづらっ!」ってなったりする。

そういう事もあり、コーディング規約に関して勉強中。
今参考にしているのが現場でも採用されているPSR-2。
基本的なコーディング規約であるPSR-1にちょこちょこ追加されたものらしい。

コーディングの際の参考にして頂ければ。

<?php
// 開始は「<?php」または「<?=」のみ可
// ファイルの文字コードはUTF-8(BOMなし)
// 改行コードはLF
// 行の長さをソフトリミット120字とし、80字以内におさまるようにする

// 呼んだだけで動くファイルの中で宣言系の処理を書いてはいけない(クラス定数は除く)
// define("DEF_ITEM", '定数アイテム');

// クラス名はアッパーキャメルケース
// extendsは同じ行に書く
class RulesExplain extends RulesBase
// クラス名のあとの「{」は改行する
{
// インデントは半角スペース4つ

    // 定数は大文字+「_」で定義する
    const DEF_ITEM = '定数アイテム';

    // アクセス修飾子は必ずつける
    // 関数名は(ローワー)キャメルケース 
    // 引数後のカンマの前にスペースは入れない
    // 引数後のカンマの後にはスペースを入れる
    public function getRules($rule1, $rule2)
    // 関数名のあとの「{」は改行する
    {
        // 変数名に関しては一貫性を持たせればなんでもいい(今回はキャメルケース)
        $rulesName = $rule1;

        // 予約語は小文字にする
        $rulesBool = true;

        // 「if」などと「(」の間は半角スペースを空ける
        // 「)」と「{」の間は半角スペースを空ける
        // ifなどの後の「{」は改行しない
        if ($rulesName === $rulesBool) {
            echo 'rule!';
        // elseifはつなげる
        } elseif ($rulesName === $rule2) {        

        }

        //「;」の前の空白は不要
        for ($i = 0; $i < 5; $i++) {
            echo 'rule' . $i;
        }
    }

    public function tooMuchArgument(
        // 複数行になる場合、1行につき引数は1つまで
        $itemOne,
        $itemTwo,
        $itemThree,
        $itemFour,
        $itemFive,
    ) {
        $itemTemp = $itemOne;

        switch ($itemTemp) {
            case 1:
                echo '1以上';
                // no break
                // 空でないcaseで意図的にbreakしない場合その旨のコメントを使う
            case 2:
            case 3:
                echo '2以上';
                break;
        }

    }
}
// [EOF]
// ファイルの末尾は改行し空行をいれる
/* 「?>」は省略する */

説明部分をコメントとして残してみたけどえらく見づらい・・・

コーディング規約を手短に伝えるためソースの中身は適当です(笑)

39
43
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
39
43