ルール一覧
ルール | ルール名 | 説明 | デフォルト |
---|---|---|---|
Clean Code Rules (cleancode.xml) |
BooleanArgumentFlag | 関数の引数デフォルト値にboolean値が設定されている | |
ElseExpresstion | elseが記述されている | ||
StaticAccess | メソッド内で別クラスのメソッドを静的呼び出ししている | ||
Code Size Rules (codesize.xml) |
CyclomaticComplexity | 関数が複雑である(制御構造が多い) | 上限10 |
NPathComplexity | 経路数が多い | 上限200 | |
ExcessiveMethodLength | 関数が長い | 上限100行 | |
ExcessiveClassLength | クラスが長い | 上限値1000行 | |
ExcessiveParameterList | 関数の引数が多い | 上限10 | |
ExcessivePublicCount | publicが多い | 上限45 | |
TooManyFields | プロパティが多い | 上限15 | |
TooManyMethods | メソッドが多い | 上限25 | |
TooManyPublicMethods | publicメソッドが多い | 上限10 | |
ExcessiveClassComplexity | クラスが複雑 | 一クラス内の複雑さが50以上 | |
Controversial Rules (controversial.xml) |
Supergloobals | スーパーグローバル変数にアクセスしている | |
CamelCaseClassName | クラス名がキャメルケースになっていない(UCC) | ||
CamelCasePropertyName | プロパティ名がキャメルケースになっていない(LCC) | ||
CamelCaseMethodName | メソッド名がキャメルケースになっていない(LCC) | ||
CamelCaseParameterName | 引数名がキャメルケースになっていない(LCC) | ||
CamelCaseVariableName | 変数名がキャメルケースになっていない(LCC) | ||
Design Rules (design.xml) |
ExitExpression | 関数内でexitしている | TD |
EvalExpression | evalが使われている | TD | |
GotoStatement | gotoが使われている | TD | |
NumberOfChildren | 小クラスが多い | 上限15 | |
DepthOfInheritance | 親クラスが多い | 上限6 | |
CouplingBetweenObjects | クラスの依存関係が多い | 上限13 | |
DevelopmentCodeFragment | デバッグコードがある | var_dump print_r debug_zval_dump debug_print_backtrace |
|
Naming Rules (naming.xml) |
ShortVariable | 変数名が短い | 下限3文字 |
LongVariable | 変数名が長い | 上限20文字 | |
ShortMethodName | メソッド名が短い | 下限3文字 | |
ConstructorWithNameAsEnclosingClass | クラス名のコンストラクタがある | ||
ConstantNamingConventions | 定数が大文字ではない | ||
BooleanGetMethodName | booleanを返すときはisFoo()またはhasFoo()にする | ||
Unused Code Rules (unusedcode.xml) |
UnusedPrivateField | privateなフィールドが使われていない | |
UnusedLocalVariable | ローカル変数が使われていない | ||
UnusedPrivateMethod | privateなメソッドが使われていない | ||
UnusedFormalParameter | 引数が使われていない |
カスタムルールファイル作成
PHPMD公式に記載されている、ルールファイルのテンプレート「ruleset.xml」をコピーして使用する。