Symfonyにコードを追加する際、以下のコーディング規約に準拠する必要があります。これらを理解する手っ取り早い方法は既存のSymfonyのコードを模倣することです。
-
ショートタグは使ってはならない (
<?
) -
クラスファイルの末尾にPHP終了タグ(
?>
)はつけてはならない -
インデントにはスペース4つを用いる(タブは使ってはならない)
-
改行コードにはLine Feed(
0x0A
)を用いる -
区切り文字のカンマの後ろにはスペースを1つ含める
-
開始丸括弧の後ろと閉じ丸括弧の前にスペースを含めてはならない
-
演算子の前後にはスペースを1つ含める (
==
,&&
, ...) -
制御構造の開始丸括弧の前にはスペースを1つ含める (
if
,else
,for
,while
, ...) -
return
文の前には空行を1行含める -
行末にスペースを含めてはならない
-
制御構造を記述する際は必ず波括弧も記述する
-
クラス、メソッド、関数定義の波括弧は独立した行に記述する
-
条件文と開始波括弧の間にはスペースを1つ含め、改行してはならない
-
クラス、メソッド、プロパティには必ずアクセス修飾子を宣言する (
var
は使用禁止); -
PHPの内部定数(
true
,false
,null
)、およびarray()
は小文字で記述する -
定数は大文字で宣言し、区切り文字にはアンダースコアを用いる
-
1ファイルには1クラスのみ定義する
-
クラスのプロパティはメソッドの前に宣言する
-
publicメソッドを最初に宣言し、次にprotectedメソッドを宣言する
-
privateメソッドを宣言してはならない
-
変数、関数、メソッド名にはローワーキャメル(camelCase)を用い、アンダースコアは利用しない
-
オプションやパラメータの名称にはアンダースコアを用いる
-
すべてのクラスには名前空間を宣言する
-
トップレベルの名前空間は
Symfony
とする -
インターフェイスには
Interface
サフィックスをつける -
ファイル名には英数字およびアンダースコアを用いる
-
すべてのクラス、メソッド、関数にはPHPDocブロックを記述する
-
すべての
@package
にはSymfony
が入る -
@subpackage
は名前空間のセカンドレベルの要素が入る。ただしComponentsは サードレベルの要素をアンダースコアでつける (Foundation
,Components_Console
, ...)