Skip to content

Vanilla のコーディング規約 (PHP)

yu-tang edited this page Jun 21, 2011 · 1 revision

Vanilla のコーディング規約については、以下のドキュメントで説明されています。

[Standards & Practices - Vanilla Forums] 1

ただし、なぜか目次に載っていないため、見落としやすくなっています。

詳しくは[原文] 1を参照していただくとして、以下に簡単にまとめてみます。

  • 文字コード(エンコーディング)は UTF-8
  • PHP 開始タグはショートタグ <? を使わない。常に <?php 形式。
  • PHP 終了タグは書かない。常に省略する。
  • クラス名、メソッド名、変数名はすべてアッパーキャメルケース(先頭を大文字 にするパスカル風)。 単語の区切りにアンダースコアを使わない (○ VanillaForums, × vanilla_forums)。
  • メソッドには必ず static、private、protected、public のスコープを 宣言する。省略しない。
  • 識別子は、その目的を説明している名前にする。 略称は使わない(○ MyBirthday, × MyBd)。 一文字の変数名はループ内に限り使用可。
  • 例外的に、PluginManager はクラス、メソッド、アクションを区別するため アンダースコアを利用する。そのため、Gdn_IPlugin を継承するすべて のクラスは、以下のような形でメソッド名にアンダースコアを使用する。
    public function ClassNameToAttachTo_MethodOrEventNameToReference_Action($Sender) {
       // 何かの処理
    }
    プラグインとアンダースコアの詳細は [A Quick-Start Guide to Writing Plugins for Vanilla - Vanilla Forums] 2を参照。
  • すべての関数とメソッドには PHP Doc 形式のコメントを付ける。内部処理 には適宜 1 行形式のコメントを入れ、可読性のため直前に空行を置く。長文 コメントの場合は 70 文字を目安に改行する。
  • TRUE、FALSE、NULL のような PHP の組み込み定数は、すべて大文字で記述する。 ユーザー定義の定数も大文字で記述し、単語の区切りにはアンダースコアを使用 する(○ MY_CONSTANT_NAME, × myConstantName)。
  • 名前の衝突を防ぐため、ファイル名には統一性のあるプレフィクスを付ける。 Vanilla/Garden 関連クラスはすべて Gdn_ というプレフィクスで始まる。 クラス定義を記述したファイル名にクラス名と同じ名前を付ける場合は、すべて 小文字にすること。Vanilla/Garden の場合は、ファイル名から内容を識別しやすい ように、classfunctionsinterface などのプレフィクスを用いている。
  • ブロックの開始括弧 { は、制御文と同じ行に置く。
    function MyFunction() {
    }
    for ($i = 0; $i < 10; ++$i) {
    }
  • 関数やメソッドの引数が多い場合は、1 引数ごとに改行してインデントする。
    BigFunctionCall(
        $Arg1,
        $Arg2,
        $Arg3,
        $Argn
    );
    インデントは半角スペース 3 文字とする。タブは使わない

人によってルールは異なると思いますが、『郷に入っては郷に従え』ということで、 とりあえず独自にアプリケーションやプラグインを作るときは、上記に従っておくと Vanilla っぽく仕上がると思います。