Manual:Coding conventions/ja

このページでは、MediaWiki codebaseの範囲内で使用されているコーディング規約および命名規約を説明します. そのため辞書的ではなく説明的な内容になります. これらのガイドラインに従うことを選択する場合、このプロジェクト上の他の人と共同作業をすることがより簡単になるでしょう. しかしどうしても独自のスタイルを通したいのであればそうして下さい(後日コードがリフォーマットされても驚かないで下さい)

インデントと空白

 * コードは空白ではなくタブでインデントする
 * K&R スタイルの中括弧マッチングを使用する
 * 一般的には、関数定義とコールにおいてそれぞれ空ではない丸括弧の内側に一つの空白が使用される

クラス

 * プライベートクラスメンバーとメソッドが欠如しているPHP 4.xからの引き継ぎとして、注意を促すために古いコードは/** @private */といったコメントがマークされます; コンパイラによって強制されたものとして見なして下さい
 * 新しいコードは適切な視認性を使用しますが、最初のチェック、テストとリファクタリングする前に存在するコードに追加しないで下さい. 上記のルールはいくつかの場所で守られていないからです.
 * 一般的には、メンバー変数はそれらを識別するためにmXxxと命名されます. PHPの暗黙の変数初期化による奇妙な破損を引き起こす$thisのインスタンスを見失わないにすることを手助けをします
 * より見分けをしやすいようにグローバル変数の名前の接頭辞にwg (wiki global)を付けます. このことによってグローバル宣言を発見することを容易にします

関数

 * wf - トップレベルの関数、例えば

変数

 * wg - グローバル変数、例えば や
 * m - オブジェクトメンバー変数:
 * これは一般的に観測されるものではありませんが、クラスの範囲内では一貫性を保つことを心がけて下さい. 

エクステンションの関数と変数

 * ef - ユーザエクステンションによって追加されたトップレベルの関数
 * eg - エクステンショングローバル

HTTPとセッションの要素

 * ws - セッション変数、例えば
 * wc - クッキー変数,、例えば
 * wp - POST変数 (フィールド経由で投稿)、例えば

データベース

 * テーブル名は通常は単数形の名詞です: user、page、revisionなど
 * 次のものではないものは除きます: pagelinks, categorylinks</tt>...
 * カラム名はテーブル名に由来する接頭辞が与えられます: 名前自身、短いか、略語の場合です:
 * page -> page_id, page_namespace, page_title...
 * categorylinks -> cl_from, cl_namespace...

共通のローカル変数
Database</tt>クラスのインスタンスで動作することは共通です; 接続したサーバの性質を追跡することの手助けになるための命名規則を持っています. Wikimediaと他の巨大なwiki群といった複製環境ではとりわけ重要です.


 * - 書き込みのためのDatabaseオブジェクト(マスター接続)
 * - 同時並行に依存ではない読み込みのためのDatabaseオブジェクト(リードオンリーのスレーブでマスター状態よりも少し遅れを取る)