--- title: 【PSR】PHPの標準コーディング規約 tags: PHP コーディング規約 PSR author: katsukii slide: false --- # PSR-0 オートローダーのためのコーディング規約 ## 名前空間の命名規則 アルファベットの大文字小文字は自由 ``` \\(\)* ``` ### VendorName 名前空間を汚さないために、固有のベンダー名を最初に付ける。 ### Namespace 自由に名前空間をつけていい。 ### ClassName クラス名にアンダースコアが含まれる場合、「DIRECTORY_SEPARATOR」に変換されファイルパスとする。「.php」を付けてファイルパスとする。 ### Namespaceの区切り文字について 名前空間の区切り文字は「DIRECTORY_SEPARATOR」に変換されファイルパスとする。上記ルールで作成された、ファイルパスを元に対象ファイルを探してオートロードする。 # PSR-1 基本的なコーディング規約 ## PHPタグ * \n"; // 宣言 function foo() { // 関数本体 } ex)推奨される書き方 ``` ```php:ok.php $b) { $foo->bar($arg1); } else { BazClass::bar($arg2, $arg3); } } final public static function bar() { // メソッド本文 } } ``` ## ファイル * 改行コードはLFを使用。 * ファイルの最後に空行を入れる。 * ?> 省略する。 ## 行 * 120文字でゆるい文字数制限(絶対的な文字数制限はしない)を設ける。 * 1行は80文字以内にするべき、80文字を越える場合は複数行に改行する。 * 行末に空白文字列を記述してはいけない。 * 読みやすくしたり、関連性を示すために適度に空行を加えてかまわない。 * 1行は1ステートメントにする。 ## インデント 4つのスペースを使用する(タブを使用してはいけない) ## 予約後とTrue/False/Null * 予約語は小文字で記述する。 * PHPのコンスタント値「true」「false」「null」は小文字で記述する。 ## 名前空間とuseによる定義 * 名前空間の定義の後に空行を1行設ける。 * useは、名前空間宣言の後に記述する。 * 宣言1つずつuse を記述する。 * useブロックの後に空行を1行設ける。 ## クラス、extends、Implements * extendsとimplementsは、クラス名と同じ行で記述する。 * 開きカッコ { は次の行に記述。 * 閉じカッコ } は内容を記述した次の行に記述する。 * 開きカッコの後、閉じカッコの前にスペースは記述しない。 ```php:xxx.php