コーディング規約¶
Symfony2 にソースコードを提供する場合は、以下のコーディング規約に従ってください。コーディング規約を最も分かりやすい短い文にまとめると、既存の Symfony2 のソースコードの真似をするということです。
構文¶
- ショートタグを使ってはなりません(<?)
- クラスファイルの末尾に、通常の PHP ブロックの終了タグ(?>)を付けてはなりません
- インデントには、空白4つを使い、タブを使ってはなりません
- 行の終端の改行には LF(0x0A)を使います
- カンマの後には空白を1つ開けます
- 開き丸括弧の後と閉じ丸括弧の前には、スペースを開けてはなりません
- 演算子(==、&&、...)の前後には空白を1つ開けます
- 制御構文のキーワード(if、else、for、while、...)と開き丸括弧との間には、空白を1つ開けます
- return 文の前には空行を1行開けます
- 行末に余分な空白を付けてはなりません
- 制御文の本体の行数に関わらず、波括弧で制御文本体を囲います
- クラス宣言、メソッド宣言、関数宣言に使う波括弧は、それぞれ独立した1行に記述します
- 条件文と開き波括弧との間には空白を1つ開け、改行してはなりません
- クラス、メソッド、プロパティのアクセス修飾子を明示的に宣言します(var を使うことは禁止されています)
- PHP 組み込み型の定数には小文字を使います: false、true、null、array()
- 定数には大文字を使い、複数の単語をアンダースコアで結合します
- 1つのファイルには、1つのクラスのみを定義します
- クラスのプロパティ宣言を、メソッドよりも前に記述します
- 最初に public なメソッド、次に protected なメソッド、最後に private なメソッドという順で宣言します。
命名規約¶
- 変数名、関数名、メソッド名には、アンダースコア形式ではなくローワーキャメル形式を使います
- オプション名、引数名、パラメータ名にはアンダースコア形式を使います
- すべてのクラスに名前空間を使います
- 名前空間のトップレベルは Symfony とします(訳注:Symfony 内部機能の場合)
- インターフェイスには Interface サフィックスをつけます
- ファイル名には、アルファベット、数字、アンダースコアのみを使います
ドキュメント¶
- すべてのクラス、メソッド、関数に PHPDoc ブロックを追加してください
- @package と @subpackage アノテーションは使われません