独自のコードを標準化するために、CodeIgniter、Laravel、PSR およびその他の関連仕様を参照して、PHP コードの仕様をまとめました。
[TOC] ## ファイル形式
PHP コード ファイルは、BOM なしの UTF-8 でエンコードする必要があります。
すべての PHP ファイルは、行終端文字として Unix LF (改行) を使用する必要があります。
すべての PHP ファイルは空行で終わる必要があります。
純粋な PHP コード ファイルでは、最後の ?> 終了タグを省略する必要があります。
クラス ファイルの名前は大文字で始める必要があり、他のファイル (構成ファイル、ビュー、一般的なスクリプト ファイルなど) の名前はすべて大文字で始める必要があります。小文字。さらに、クラス ファイルの名前はクラスの名前と一致している必要があります。
通常は、経験の浅いプログラマにコードの流れと意図を説明できるだけでなく、数か月後にもコメントを書く必要があります。自分のコードを振り返るときにも、それをよく理解するのに役立ちます。 コメントに必須の形式はありませんが、次の形式を推奨します。
クラス、メソッド、プロパティ定義の前に記述された DocBlock スタイルのコメントは、IDE で認識できます。
/** * Super Class * * @package Package Name * @subpackage Subpackage * @category Category * @author Author Name * @link http://example.com */class Super_class {
/** * Encodes string for use in XML * * @param string $str Input string * @return string */function xml_encode($str)
/** * Data for class manipulation * * @var array */public $data = array();
単一行のコメントはコードに統合する必要があります。 、大きなコメントとコードの間には空白行が必要です。
// break up the string by newlines$parts = explode("\n", $str);// A longer comment that needs to give greater detail on what is// occurring and why can use multiple single-line comments. Try to// keep the width reasonable, around 70 characters is the easiest to// read. Don't hesitate to link to permanent external resources// that may provide greater detail://// http://example.com/information_about_something/in_particular/$parts = $this->foo($parts);
クラスの定数内の文字はすべて大文字にする必要があり、単語はアンダースコアで区切る必要があります。 次のコードを参照してください:
<?phpnamespace Vendor\Model;class Foo{ const VERSION = '1.0'; const DATE_APPROVED = '2012-06-01';}
すべての PHP キーワードはすべて小文字である必要があります。
定数 true、false、null もすべて小文字にする必要があります。
|| 演算子は使用しないでください。一部のデバイスでは表示されません (数字の 11 のように見える場合があります)。AND よりも && 演算子を使用することをお勧めします。どちらも許容されます。 さらに、! 演算子の前後にスペースを追加する必要があります。
PHP 関数の中には失敗時に FALSE を返すものもありますが、ルーズな関数で使用される "" や 0 などの有効な値を返す場合もあります。型の比較は FALSE に等しい。したがって、条件内の比較にこれらの戻り値を使用する場合は、厳密な型比較を使用して、戻り値が実際に必要なものであることを確認し、他の緩い型の値ではないことを確認してください。
独自の戻り値と変数をチェックするときも、必要に応じて === と !== を使用して、この厳密なアプローチに従ってください。
PHP 開始タグの前と終了タグの後にスペースを残さないでください。
複数のクラスが密接に関連している場合を除き、各クラスは個別のファイルを使用する必要があります。
関数と制御構造は Allman スタイルで囲む必要があります
文字列は二重引用符で囲みます。文字列に変数がある場合は、中括弧を使用して変数を囲みます。 さらに、文字列内に一重引用符がある場合は、エスケープ文字が必要ないように二重引用符も使用する必要があります。
'My String'"My string {$foo}""SELECT foo FROM bar WHERE baz = 'bag'"