Zend Frameworkのコーディング規則を長いのでまとめてみた。忘れたときは見直そうと思う。
PHP ファイルの書式
- PHP コードのみからなるファイルでは、終了タグ (“?>”)
は決して含めない。 - 字下げは空白 4 文字。タブ文字を使ってはいけない。
- 1 行の長さを 80 文字まで。最大でも120文字まで。
- 行末はラインフィード (LF) のみ。CRLFを使用しない。
命名規則
- クラスの名前が保存先ディレクトリに直接対応するようにする。
- クラス名には英数字のみが使用でき、できるだけ数字は使わない。
- ファイル名が “Zend/Db/Table.php” の場合、クラス名を
“Zend_Db_Table“とする。 - クラス名が複数の単語から成り立つ場合は、
それぞれの単語の最初の文字を大文字にする。 - アプリケーションのコードや Zend 以外が作成したライブラリなどは、”Zend_” や “ZendX_” で始まる名前は使用できない。
- 抽象クラスの名前は最後が アンダースコアなしの”Abstract”とする。
- インターフェイスの名前は最後が アンダースコアなしの”Interface”とする。
- ファイルで使用可能な文字は英数字・アンダースコア
およびダッシュ文字 (“-“) のみ。 - 関数名に使用できるのは英数字のみです。
アンダースコアを使用不可。数字はなるべく使わない。 - 関数名は小文字で始め、複数の単語で構成されている場合は、
各単語の最初の文字を大文字する。 - 関数名は省略しすぎず、できるだけ詳細な名前をつける。
- デザインパターンを使用する場合は、
メソッド名にパターンの名前を含めるようにする。 - “private” 、 “protected” メソッドは、メソッド名の最初にアンダースコア
1 文字をつける。 - “public” メソッドについては、
決してアンダースコアで始めない。 - グローバル関数は、できる限り使用せず、静的クラスにまとめる。
- 変数名は英数字のみ。
アンダースコアを使用しない。数字もできるだけ使わない。 - “private” 、 “protected” 変数は、変数名の最初にアンダースコア
1 文字をつける。 - “public” 変数については、
決してアンダースコアで始めない。 - 変数名も常に小文字で開始する。
- ループの変数”$i”なども、20 行以上のコードになるようなら、 それなりの名前をつける。
- 定数名には英数字およびアンダースコアを使用し、すべて大文字にする。
- 定数の宣言は、クラスのメンバとして “const”
で定義し、”define”
によるグローバル定数の宣言はできるだけしない。
コーディングスタイル
- 「シングルクォート」を含む文字列以外は「シングルクォート」で囲む。
- 変数の展開は”こんにちは {$name} さん。ようこそ!”のようにする。
- 文字列の連結には “.” 演算子を使用する。
- ひとつの文を複数行に分ける場合は、
2 行目以降の行頭に “.” 演算子を入れ、”=” 演算子と同じ位置にくるようにする。 - 要素を区切るカンマの後にスペースを入れる。
- 代入演算子 “=>” の位置はそろえる。
- 配列の最後の要素の後にもカンマをつけておくようにする。
- クラス開始の括弧は常にクラス名の下に書く。
- 関数のの上にドキュメントブロックをつける。(関数についての説明、すべての引数、返り値)
- 値の参照渡しは、
メソッドの宣言時にパラメータを渡す部分においてのみ可能。実行時の参照渡しは禁止。 - 返り値は「return(~)」ではなく、「return ~」とする。
- クラス名の上にドキュメントブロックをつける。
/**
* クラスについての短い説明
* クラスについての長い説明 (もしあれば)…
* @category Zend
* @package Zend_Magic
* @subpackage Wand
* @copyright 2008 Zend Technologies
* @license http://framework.zend.com/license BSD License
* @version Release: @package_version@
* @link http://framework.zend.com/package/PackageName
* @since Class available since Release 1.5.0
* @deprecated Class deprecated in Release 2.0.0
*/