Zend Frameworkコーディング規則(規約)

Zend Frameworkのコーディング規則を長いのでまとめてみた。忘れたときは見直そうと思う。

PHP ファイルの書式

  1. PHP コードのみからなるファイルでは、終了タグ (“?>”)
    は決して含めない。
  2. 字下げは空白 4 文字。タブ文字を使ってはいけない。
  3. 1 行の長さを 80 文字まで。最大でも120文字まで。
  4. 行末はラインフィード (LF) のみ。CRLFを使用しない。

命名規則

  1. クラスの名前が保存先ディレクトリに直接対応するようにする。
  2. クラス名には英数字のみが使用でき、できるだけ数字は使わない。
  3. ファイル名が “Zend/Db/Table.php” の場合、クラス名を
    Zend_Db_Table“とする。
  4. クラス名が複数の単語から成り立つ場合は、
    それぞれの単語の最初の文字を大文字にする。
  5. アプリケーションのコードや Zend 以外が作成したライブラリなどは、”Zend_” や “ZendX_” で始まる名前は使用できない。
  6. 抽象クラスの名前は最後が アンダースコアなしの”Abstract”とする。
  7. インターフェイスの名前は最後が アンダースコアなしの”Interface”とする。
  8. ファイルで使用可能な文字は英数字・アンダースコア
    およびダッシュ文字 (“-“) のみ。
  9. 関数名に使用できるのは英数字のみです。
    アンダースコアを使用不可。数字はなるべく使わない。
  10. 関数名は小文字で始め、複数の単語で構成されている場合は、
    各単語の最初の文字を大文字する。
  11. 関数名は省略しすぎず、できるだけ詳細な名前をつける。
  12. デザインパターンを使用する場合は、
    メソッド名にパターンの名前を含めるようにする。
  13. “private” 、 “protected” メソッドは、メソッド名の最初にアンダースコア
    1 文字をつける。
  14. “public” メソッドについては、
    決してアンダースコアで始めない。
  15. グローバル関数は、できる限り使用せず、静的クラスにまとめる。
  16. 変数名は英数字のみ。
    アンダースコアを使用しない。数字もできるだけ使わない。
  17. “private” 、 “protected” 変数は、変数名の最初にアンダースコア
    1 文字をつける。
  18. “public” 変数については、
    決してアンダースコアで始めない。
  19. 変数名も常に小文字で開始する。
  20. ループの変数”$i”なども、20 行以上のコードになるようなら、 それなりの名前をつける。
  21. 定数名には英数字およびアンダースコアを使用し、すべて大文字にする。
  22. 定数の宣言は、クラスのメンバとして “const”
    で定義し、”define”
    によるグローバル定数の宣言はできるだけしない。

コーディングスタイル

  1. 「シングルクォート」を含む文字列以外は「シングルクォート」で囲む。
  2. 変数の展開は”こんにちは {$name} さん。ようこそ!”のようにする。
  3. 文字列の連結には “.” 演算子を使用する。
  4. ひとつの文を複数行に分ける場合は、
    2 行目以降の行頭に “.” 演算子を入れ、”=” 演算子と同じ位置にくるようにする。
  5. 要素を区切るカンマの後にスペースを入れる。
  6. 代入演算子 “=>” の位置はそろえる。
  7. 配列の最後の要素の後にもカンマをつけておくようにする。
  8. クラス開始の括弧は常にクラス名の下に書く。
  9. 関数のの上にドキュメントブロックをつける。(関数についての説明、すべての引数、返り値)
  10. 値の参照渡しは、
    メソッドの宣言時にパラメータを渡す部分においてのみ可能。実行時の参照渡しは禁止。
  11. 返り値は「return(~)」ではなく、「return ~」とする。
  12. クラス名の上にドキュメントブロックをつける。

      /**
      * クラスについての短い説明
      * クラスについての長い説明 (もしあれば)…
      * @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
      */

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です