Skip to content

Instantly share code, notes, and snippets.

@hidao80
Last active October 8, 2023 03:23
Show Gist options
  • Save hidao80/7c4cc1355b915b9a4b2613bf85801e47 to your computer and use it in GitHub Desktop.
Save hidao80/7c4cc1355b915b9a4b2613bf85801e47 to your computer and use it in GitHub Desktop.
phpmdの実行結果で表示されるメッセージを日本語化した ruleset.xml。
<?xml version="1.0"?>
<ruleset name="PHPMD ruleset that converts error messages into Japanese."
xmlns="http://pmd.sf.net/ruleset/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
<description>
メッセージを日本語化しました。&#10;
エラーメッセージを日本語訳するには、ルールを読み込む必要があります。そのためプロジェクトに不要なルールはコメントアウトしてください。&#10;&#10;
ライセンス: This work is licensed under CC BY 4.0 &#10;&#10;
翻訳したメッセージは、下記Webページを参考にしています。&#10;
aoki.makoto, 2020, "PHP Mess Detector (phpmd)の警告の一覧", "プログラミング入門 Git Android AWS Ninton", (2023/10/08, https://www.ninton.co.jp/archives/5879)
</description>
<!-- cleancode セクション -->
<!-- 以下のルールを無視する
<exclude name="ElseExpression" />
<exclude name="StaticAccess" />
-->
<rule ref="rulesets/cleancode.xml/BooleanArgumentFlag" message="引数のbool変数でロジックを振り分けているなら、2つのメソッドに分けましょう。" />
<!-- <rule ref="rulesets/cleancode.xml/ElseExpression" message="(ヌルチェック、値の範囲チェックなど、前処理のifは)elseを使わず、アーリーリターンしましょう。" /> -->
<rule ref="rulesets/cleancode.xml/IfStatementAssignment" message="【重要】if条件内で代入は禁止です。==のタイプミスかもしれません。" />
<!-- <rule ref="rulesets/cleancode.xml/StaticAccess" message="クラス名::staticメソッドのアクセスはは禁止です。です。" /> -->
<rule ref="rulesets/cleancode.xml/DuplicatedArrayKey" message="【重要】配列で同じキーが登録されています。(ひとつめの値は、2つめの値で上書きされます)" />
<rule ref="rulesets/cleancode.xml/MissingImport" message="(classに対応した)useをしていません。" />
<rule ref="rulesets/cleancode.xml/UndefinedVariable" message="【重要】値が未設定の変数または初期化されていない変数は使ってはいけません。" />
<rule ref="rulesets/cleancode.xml/ErrorControlOperator" message="エラー抑制子@を削除しましょう。" />
<!-- codesize セクション -->
<rule ref="rulesets/codesize.xml/CyclomaticComplexity" message="【重要】メソッドが複雑すぎます。循環的複雑度が11をこえています。リファクタして、ifやwhile、for、caseを減らしましょう。" />
<rule ref="rulesets/codesize.xml/NPathComplexity" message="【重要】メソッドが複雑すぎます。コードの実行パス数が200をこえています。リファクタして、ifやwhile、for、caseを減らしましょう。" />
<rule ref="rulesets/codesize.xml/ExcessiveMethodLength" message="【重要】メソッドが長すぎます。100行以内に収めましょう。空行もカウントします。メソッドに分けましょう。" />
<rule ref="rulesets/codesize.xml/ExcessiveClassLength" message="【重要】クラスが長すぎます。1000行以内に収めましょう。空行もカウントします。クラスを分けましょう。" />
<rule ref="rulesets/codesize.xml/ExcessiveParameterList" message="メソッドの引数が多すぎます。10以内にしましょう。" />
<rule ref="rulesets/codesize.xml/ExcessivePublicCount" message="publicメソッド+publicプロパティが多すぎます。45以内にしましょう。(get/setメソッド含む)" />
<rule ref="rulesets/codesize.xml/TooManyFields" message="クラスのプロパティが多すぎます。15以内にしましょう。例えば、city、state、zipプロパティは、addressクラスにまとめてはどうでしょうか?" />
<rule ref="rulesets/codesize.xml/TooManyMethods" message="メソッドが多すぎます。25以内にしましょう。(get/setメソッドを除く)" />
<rule ref="rulesets/codesize.xml/TooManyPublicMethods" message="publicメソッドが多すぎます。10以内にしましょう。(get/setメソッドを除く)" />
<rule ref="rulesets/codesize.xml/ExcessiveClassComplexity" message="メソッド数やメソッド複雑度から総合的に判断すると、クラスが複雑すぎます。WMC(Weighted Method Count)が50をこえています。" />
<!-- controversial セクション -->
<rule ref="rulesets/controversial.xml/Superglobals" message="(メソッド内で)$_GET、$_SESSIONなどのスーパーグローバル変数にアクセスしないほうがよいです。" />
<rule ref="rulesets/controversial.xml/CamelCaseClassName" message="クラス名をキャメルケースにしましょう。" />
<rule ref="rulesets/controversial.xml/CamelCasePropertyName" message="プロパティ名をキャメルケースにしましょう。" />
<rule ref="rulesets/controversial.xml/CamelCaseMethodName" message="メソッド名をキャメルケースにしましょう。" />
<rule ref="rulesets/controversial.xml/CamelCaseParameterName" message="引数名をキャメルケースにしましょう。" />
<rule ref="rulesets/controversial.xml/CamelCaseVariableName" message="変数名をキャメルケースにしましょう。" />
<!-- design セクション -->
<rule ref="rulesets/design.xml/ExitExpression" message="exit()は禁止です。テストできなくなります。" />
<rule ref="rulesets/design.xml/EvalExpression" message="eval()は禁止です。テストできなくなりますし、セキュリティリスクも高くなります。" />
<rule ref="rulesets/design.xml/GotoStatement" message="gotoは禁止です。" />
<rule ref="rulesets/design.xml/NumberOfChildren" message="extendsした子クラスが多すぎます。15以下に抑えましょう。" />
<rule ref="rulesets/design.xml/DepthOfInheritance" message="extends階層が深すぎます。6以下に抑えましょう。" />
<rule ref="rulesets/design.xml/CouplingBetweenObjects" message="使っているクラスが多すぎます。13以下にしましょう。" />
<rule ref="rulesets/design.xml/DevelopmentCodeFragment" message="var_dump()やprint_r()などの開発コードが残っています。本番コードでは削除しましょう。" />
<rule ref="rulesets/design.xml/EmptyCatchBlock" message="catchが空です。" />
<rule ref="rulesets/design.xml/CountInLoopExpression" message="ループ宣言内でcount()しています。例: for ($i = 0; $i &lt;= count($arr); $i += 1)" />
<!-- naming セクション -->
<rule ref="rulesets/naming.xml/ShortVariable" message="変数名が短すぎます。3文字以上にしましょう。forカウンタは除く。" />
<rule ref="rulesets/naming.xml/LongVariable" message="プロパティ、引数、ローカル変数名が長すぎます。20文字以内にしましょう。" />
<rule ref="rulesets/naming.xml/ShortMethodName" message="メソッド名が短すぎます。3文字以上にしましょう。" />
<rule ref="rulesets/naming.xml/ConstructorWithNameAsEnclosingClass" message="コンストラクタは__constructメソッドを使うこと。PHP4スタイルのクラス名と同名メソッドはは禁止です。" />
<rule ref="rulesets/naming.xml/ConstantNamingConventions" message="クラスやinterfaceの定数名は、大文字にすること。" />
<rule ref="rulesets/naming.xml/BooleanGetMethodName" message="戻り値がbool型のメソッドは、'getX()' より、'isX()' や 'hasX()' のほうがよいです。" />
<rule ref="rulesets/naming.xml/LongClassName" message="クラス名が長すぎます。40文字以下にしましょう。" />
<rule ref="rulesets/naming.xml/ShortClassName" message="クラス名が短すぎます。3文字以上にしましょう。" />
<!-- unusedcode セクション -->
<rule ref="rulesets/unusedcode.xml/UnusedPrivateField" message="このprivateプロパティは使われていません。" />
<rule ref="rulesets/unusedcode.xml/UnusedLocalVariable" message="このローカル変数は使われていません。" />
<rule ref="rulesets/unusedcode.xml/UnusedPrivateMethod" message="このprivateメソッドは使われていません。" />
<rule ref="rulesets/unusedcode.xml/UnusedFormalParameter" message="この引数は使われていません。" />
</ruleset>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment