-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathphpmd.xml
More file actions
94 lines (77 loc) · 4.31 KB
/
Copy pathphpmd.xml
File metadata and controls
94 lines (77 loc) · 4.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?xml version="1.0" encoding="UTF-8"?>
<ruleset name="WordPress Plugin PHPMD Ruleset"
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>Code quality and naming checks with WordPress-compatible thresholds; PHPCS handles formatting.</description>
<!-- WordPress-specific file patterns to exclude -->
<exclude-pattern>*/vendor/*</exclude-pattern>
<exclude-pattern>*/.private/*</exclude-pattern>
<exclude-pattern>*/node_modules/*</exclude-pattern>
<exclude-pattern>*/tests/*</exclude-pattern>
<exclude-pattern>*/stubs/*</exclude-pattern>
<!-- Clean Code Rules (with WordPress exceptions) -->
<rule ref="rulesets/cleancode.xml">
<!-- Allow explicit else branches; review branch behavior independently. -->
<exclude name="ElseExpression"/>
<!-- Global WordPress and PHP classes do not require namespace imports here. -->
<exclude name="MissingImport"/>
</rule>
<!-- Stock limits apply to the optimizer's procedural functions. -->
<rule ref="rulesets/codesize.xml"/>
<!-- Controversial Rules (with WordPress exceptions) -->
<rule ref="rulesets/controversial.xml">
<!-- Exclude CamelCaseClassName - WordPress uses Snake_Case_Class_Names -->
<exclude name="CamelCaseClassName"/>
<!-- Exclude CamelCaseMethodName - WordPress uses snake_case_method_names -->
<exclude name="CamelCaseMethodName"/>
<!-- Exclude CamelCaseVariableName - WordPress uses $snake_case_variables -->
<exclude name="CamelCaseVariableName"/>
<!-- Exclude CamelCaseParameterName - WordPress uses $snake_case_parameters -->
<exclude name="CamelCaseParameterName"/>
<!-- Exclude CamelCasePropertyName - WordPress uses $snake_case_properties -->
<exclude name="CamelCasePropertyName"/>
</rule>
<rule ref="rulesets/design.xml"/>
<!-- WORDPRESS-SPECIFIC NAMING RULES -->
<!-- WordPress uses snake_case naming which conflicts with standard camelCase rules -->
<!-- Import only WordPress-compatible naming rules -->
<rule ref="rulesets/naming.xml/ShortVariable">
<properties>
<!-- Keep the stock minimum; optimizer names do not need shorter variables. -->
<property name="minimum" value="3"/>
</properties>
</rule>
<rule ref="rulesets/naming.xml/LongVariable">
<properties>
<!-- WordPress descriptive variable names can be longer -->
<property name="maximum" value="40"/>
</properties>
</rule>
<rule ref="rulesets/naming.xml/ShortMethodName">
<properties>
<!-- Keep the stock minimum for function and method names. -->
<property name="minimum" value="3"/>
</properties>
</rule>
<!-- Detect obsolete constructors named after their class. -->
<rule ref="rulesets/naming.xml/ConstructorWithNameAsEnclosingClass"/>
<!-- WordPress constant naming (UPPER_CASE_WITH_UNDERSCORES) -->
<rule ref="rulesets/naming.xml/ConstantNamingConventions"/>
<!-- WordPress boolean method naming (is_*, has_*, can_*) -->
<rule ref="rulesets/naming.xml/BooleanGetMethodName"/>
<!-- EXPLICITLY EXCLUDED NAMING RULES FOR WORDPRESS COMPATIBILITY -->
<!-- These rules are NOT included because they conflict with WordPress standards: -->
<!-- - CamelCaseClassName (WordPress uses Class_Name_With_Underscores) -->
<!-- - CamelCaseMethodName (WordPress uses method_name_with_underscores) -->
<!-- - CamelCaseVariableName (WordPress uses $variable_name_with_underscores) -->
<!-- - CamelCaseParameterName (WordPress uses $parameter_name_with_underscores) -->
<!-- - CamelCasePropertyName (WordPress uses $property_name_with_underscores) -->
<!-- Unused Code Rules (always enforce) -->
<rule ref="rulesets/unusedcode.xml"/>
<!-- WORDPRESS CODING STANDARDS ENFORCEMENT -->
<!-- Note: PHPMD doesn't directly enforce spacing/indentation -->
<!-- For spacing enforcement, use PHPCS with WordPress standards instead -->
<!-- This PHPMD config focuses on code quality and WordPress-compatible naming -->
</ruleset>