Skip to content

Commit 7628a88

Browse files
committed
Modernize code style
- Use PSR-12 - Move to WPCS 2 - Move to PHPCS 3.3 - Include VIP rules
1 parent 0d79aa6 commit 7628a88

File tree

3 files changed

+177
-47
lines changed

3 files changed

+177
-47
lines changed

Inpsyde/ruleset.xml

Lines changed: 81 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -18,26 +18,20 @@
1818
<arg value="sp"/>
1919

2020
<!--
21-
PSR 2 Code style.
22-
See http://www.php-fig.org/psr/psr-2/
21+
PSR 12 Code style.
22+
See http://www.php-fig.org/psr/psr-12/
2323
-->
24-
<rule ref="PSR2">
24+
<rule ref="PSR12">
2525
<exclude name="Generic.Files.LineLength.TooLong"/>
2626
</rule>
2727

2828
<!--
2929
Neutron standard are quality tools for PHP7 development from Automattic.
3030
See https://github.com/Automattic/phpcs-neutron-standard
3131
-->
32-
<rule ref="NeutronStandard.Arrays.DisallowLongformArray">
33-
<type>warning</type>
34-
</rule>
3532
<rule ref="NeutronStandard.AssignAlign.DisallowAssignAlign">
3633
<type>warning</type>
3734
</rule>
38-
<rule ref="NeutronStandard.Extract.DisallowExtract">
39-
<type>warning</type>
40-
</rule>
4135
<rule ref="NeutronStandard.Functions.DisallowCallUserFunc">
4236
<type>warning</type>
4337
</rule>
@@ -58,22 +52,33 @@
5852
</rule>
5953

6054
<!--
61-
Some WordPress specific rules.
55+
Curated list of WordPress specific rules.
6256
See https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards
6357
-->
64-
<rule ref="WordPress.VIP.SessionVariableUsage"/>
65-
<rule ref="WordPress.VIP.SessionFunctionsUsage"/>
66-
<rule ref="WordPress.VIP.SuperGlobalInputUsage"/>
67-
<rule ref="WordPress.VIP.ValidatedSanitizedInput"/>
68-
<rule ref="WordPress.XSS.EscapeOutput"/>
69-
<rule ref="WordPress.CSRF.NonceVerification"/>
70-
<rule ref="WordPress.WP.AlternativeFunctions.curl"/>
71-
<rule ref="WordPress.WP.DiscouragedConstants"/>
72-
<rule ref="WordPress.WP.I18n"/>
7358
<rule ref="WordPress.Arrays.CommaAfterArrayItem"/>
74-
<rule ref="WordPress.PHP.StrictComparisons"/>
75-
<rule ref="WordPress.PHP.StrictInArray"/>
76-
<rule ref="WordPress.PHP.POSIXFunctions"/>
59+
<rule ref="WordPress.CodeAnalysis.AssignmentInCondition"/>
60+
<rule ref="WordPress.CodeAnalysis.EmptyStatement"/>
61+
<rule ref="WordPress.CodeAnalysis.EscapedNotTranslated"/>
62+
<rule ref="WordPress.DB.PreparedSQLPlaceholders"/>
63+
<rule ref="WordPress.DB.PreparedSQL"/>
64+
<rule ref="WordPress.DB.RestrictedClasses"/>
65+
<rule ref="WordPress.DB.RestrictedFunctions"/>
66+
<rule ref="WordPress.DateTime.CurrentTimeTimestamp"/>
67+
<rule ref="WordPress.DateTime.RestrictedFunctions"/>
68+
<rule ref="WordPress.NamingConventions.PrefixAllGlobals"/>
69+
<rule ref="WordPress.NamingConventions.ValidHookName">
70+
<properties>
71+
<property name="additionalWordDelimiters" value="-/."/>
72+
</properties>
73+
</rule>
74+
<rule ref="WordPress.NamingConventions.ValidPostTypeSlug"/>
75+
<rule ref="WordPress.PHP.DevelopmentFunctions"/>
76+
<rule ref="WordPress.PHP.DevelopmentFunctions.error_log">
77+
<type>error</type>
78+
</rule>
79+
<rule ref="WordPress.PHP.DevelopmentFunctions.prevent_path_disclosure">
80+
<type>error</type>
81+
</rule>
7782
<rule ref="WordPress.PHP.RestrictedPHPFunctions"/>
7883
<rule ref="WordPress.PHP.DiscouragedPHPFunctions">
7984
<properties>
@@ -85,17 +90,64 @@
8590
<rule ref="WordPress.PHP.DiscouragedPHPFunctions.runtime_configuration">
8691
<type>error</type>
8792
</rule>
88-
<rule ref="WordPress.PHP.DevelopmentFunctions"/>
89-
<rule ref="WordPress.PHP.DevelopmentFunctions.error_log">
90-
<type>error</type>
91-
</rule>
92-
<rule ref="WordPress.PHP.DevelopmentFunctions.prevent_path_disclosure">
93-
<type>error</type>
94-
</rule>
93+
<rule ref="WordPress.PHP.DontExtract"/>
94+
<rule ref="WordPress.PHP.IniSet"/>
95+
<rule ref="WordPress.PHP.NoSilencedErrors"/>
96+
<rule ref="WordPress.PHP.POSIXFunctions"/>
97+
<rule ref="WordPress.PHP.PregQuoteDelimiter"/>
98+
<rule ref="WordPress.PHP.RestrictedPHPFunctions"/>
99+
<rule ref="WordPress.PHP.StrictComparisons"/>
100+
<rule ref="WordPress.PHP.StrictInArray"/>
101+
<rule ref="WordPress.PHP.TypeCasts"/>
102+
<rule ref="WordPress.Security.EscapeOutput"/>
103+
<rule ref="WordPress.Security.NonceVerification"/>
104+
<rule ref="WordPress.Security.PluginMenuSlug"/>
105+
<rule ref="WordPress.Security.SafeRedirect"/>
106+
<rule ref="WordPress.Security.ValidatedSanitizedInput"/>
107+
<rule ref="WordPress.WP.AlternativeFunctions.curl"/>
108+
<rule ref="WordPress.WP.AlternativeFunctions.file_get_contents"/>
109+
<rule ref="WordPress.WP.AlternativeFunctions.file_system_read"/>
110+
<rule ref="WordPress.WP.AlternativeFunctions.strip_tags"/>
111+
<rule ref="WordPress.WP.AlternativeFunctions.rand_seeding"/>
112+
<rule ref="WordPress.WP.AlternativeFunctions.rand"/>
113+
<rule ref="WordPress.WP.CapitalPDangit"/>
114+
<rule ref="WordPress.WP.DeprecatedClasses"/>
115+
<rule ref="WordPress.WP.DeprecatedFunctions"/>
116+
<rule ref="WordPress.WP.DeprecatedParameters"/>
117+
<rule ref="WordPress.WP.DeprecatedParameterValues"/>
118+
<rule ref="WordPress.WP.DiscouragedConstants"/>
119+
<rule ref="WordPress.WP.DiscouragedFunctions"/>
120+
<rule ref="WordPress.WP.EnqueuedResourceParameters"/>
121+
<rule ref="WordPress.WP.EnqueuedResources"/>
122+
<rule ref="WordPress.WP.GlobalVariablesOverride"/>
123+
<rule ref="WordPress.WP.I18n"/>
124+
<rule ref="WordPress.WhiteSpace.CastStructureSpacing"/>
125+
126+
<!--
127+
Curated list of WordPress VIP rules.
128+
See https://github.com/Automattic/VIP-Coding-Standards/
129+
-->
130+
<rule ref="WordPressVIPMinimum.Classes.DeclarationCompatibility"/>
131+
<rule ref="WordPressVIPMinimum.Constants.IncludingNonPHPFile"/>
132+
<rule ref="WordPressVIPMinimum.Functions.DynamicCalls"/>
133+
<rule ref="WordPressVIPMinimum.Hooks.AlwaysReturnInFilter"/>
134+
<rule ref="WordPressVIPMinimum.Hooks.PreGetPosts"/>
135+
<rule ref="WordPressVIPMinimum.Performance.OrderByRand"/>
136+
<rule ref="WordPressVIPMinimum.Performance.RegexpCompare"/>
137+
<rule ref="WordPressVIPMinimum.Performance.TaxonomyMetaInOptions"/>
138+
<rule ref="WordPressVIPMinimum.Security.EscapingVoidReturnFunctions"/>
139+
<rule ref="WordPressVIPMinimum.Security.ExitAfterRedirect"/>
140+
<rule ref="WordPressVIPMinimum.Security.PHPFilterFunctions"/>
141+
<rule ref="WordPressVIPMinimum.Security.ProperEscapingFunction"/>
142+
<rule ref="WordPressVIPMinimum.Security.StaticStrreplace"/>
143+
<rule ref="WordPressVIPMinimum.Variables.RestrictedVariables.session"/>
144+
<rule ref="WordPressVIPMinimum.Variables.VariableAnalysis"/>
145+
<rule ref="WordPressVIPMinimum.VersionControl.MergeConflict"/>
95146

96147
<!--
97148
Generic
98149
-->
150+
<rule ref="Generic.Arrays.DisallowLongArraySyntax"/>
99151
<rule ref="Generic.Metrics.CyclomaticComplexity">
100152
<properties>
101153
<property name="absoluteComplexity" value="50"/>

composer.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,10 @@
2828
"minimum-stability": "stable",
2929
"require": {
3030
"php": ">=7.0",
31-
"squizlabs/php_codesniffer": "^3",
32-
"dealerdirect/phpcodesniffer-composer-installer": "^0.5",
33-
"wp-coding-standards/wpcs": "^0.14",
31+
"squizlabs/php_codesniffer": "^3.3.1",
32+
"dealerdirect/phpcodesniffer-composer-installer": "^0.5 || ^0.6",
33+
"wp-coding-standards/wpcs": "^2",
34+
"automattic/vipwpcs": "^2",
3435
"automattic/phpcs-neutron-standard": "^1",
3536
"phpcompatibility/php-compatibility": "^9.0"
3637
},
@@ -44,7 +45,7 @@
4445
},
4546
"extra": {
4647
"branch-alias": {
47-
"dev-master": "0.13.x-dev"
48+
"dev-master": "0.15.x-dev"
4849
}
4950
}
5051
}

phpcs.xml

Lines changed: 91 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,26 +22,20 @@
2222
<arg value="sp"/>
2323

2424
<!--
25-
PSR 2 Code style.
26-
See http://www.php-fig.org/psr/psr-2/
25+
PSR 12 Code style.
26+
See http://www.php-fig.org/psr/psr-12/
2727
-->
28-
<rule ref="PSR2">
28+
<rule ref="PSR12">
2929
<exclude name="Generic.Files.LineLength.TooLong"/>
3030
</rule>
3131

3232
<!--
3333
Neutron standard are quality tools for PHP7 development from Automattic.
3434
See https://github.com/Automattic/phpcs-neutron-standard
3535
-->
36-
<rule ref="NeutronStandard.Arrays.DisallowLongformArray">
37-
<type>warning</type>
38-
</rule>
3936
<rule ref="NeutronStandard.AssignAlign.DisallowAssignAlign">
4037
<type>warning</type>
4138
</rule>
42-
<rule ref="NeutronStandard.Extract.DisallowExtract">
43-
<type>warning</type>
44-
</rule>
4539
<rule ref="NeutronStandard.Functions.DisallowCallUserFunc">
4640
<type>warning</type>
4741
</rule>
@@ -62,20 +56,102 @@
6256
</rule>
6357

6458
<!--
65-
Some WordPress specific rules.
59+
Curated list of WordPress specific rules.
6660
See https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards
6761
-->
68-
<rule ref="WordPress.PHP.StrictComparisons"/>
69-
<rule ref="WordPress.PHP.StrictInArray"/>
70-
<rule ref="WordPress.PHP.POSIXFunctions"/>
62+
<rule ref="WordPress.Arrays.CommaAfterArrayItem"/>
63+
<rule ref="WordPress.CodeAnalysis.AssignmentInCondition"/>
64+
<rule ref="WordPress.CodeAnalysis.EmptyStatement"/>
65+
<rule ref="WordPress.CodeAnalysis.EscapedNotTranslated"/>
66+
<rule ref="WordPress.DB.PreparedSQLPlaceholders"/>
67+
<rule ref="WordPress.DB.PreparedSQL"/>
68+
<rule ref="WordPress.DB.RestrictedClasses"/>
69+
<rule ref="WordPress.DB.RestrictedFunctions"/>
70+
<rule ref="WordPress.DateTime.CurrentTimeTimestamp"/>
71+
<rule ref="WordPress.DateTime.RestrictedFunctions"/>
72+
<rule ref="WordPress.NamingConventions.PrefixAllGlobals"/>
73+
<rule ref="WordPress.NamingConventions.ValidHookName">
74+
<properties>
75+
<property name="additionalWordDelimiters" value="-/."/>
76+
</properties>
77+
</rule>
78+
<rule ref="WordPress.NamingConventions.ValidPostTypeSlug"/>
7179
<rule ref="WordPress.PHP.DevelopmentFunctions"/>
7280
<rule ref="WordPress.PHP.DevelopmentFunctions.error_log">
7381
<type>error</type>
7482
</rule>
83+
<rule ref="WordPress.PHP.DevelopmentFunctions.prevent_path_disclosure">
84+
<type>error</type>
85+
</rule>
86+
<rule ref="WordPress.PHP.RestrictedPHPFunctions"/>
87+
<rule ref="WordPress.PHP.DiscouragedPHPFunctions">
88+
<properties>
89+
<property name="exclude" value="serialize"/>
90+
<property name="exclude" value="urlencode"/>
91+
<property name="exclude" value="obfuscation"/>
92+
</properties>
93+
</rule>
94+
<rule ref="WordPress.PHP.DiscouragedPHPFunctions.runtime_configuration">
95+
<type>error</type>
96+
</rule>
97+
<rule ref="WordPress.PHP.DontExtract"/>
98+
<rule ref="WordPress.PHP.IniSet"/>
99+
<rule ref="WordPress.PHP.NoSilencedErrors"/>
100+
<rule ref="WordPress.PHP.POSIXFunctions"/>
101+
<rule ref="WordPress.PHP.PregQuoteDelimiter"/>
102+
<rule ref="WordPress.PHP.RestrictedPHPFunctions"/>
103+
<rule ref="WordPress.PHP.StrictComparisons"/>
104+
<rule ref="WordPress.PHP.StrictInArray"/>
105+
<rule ref="WordPress.PHP.TypeCasts"/>
106+
<rule ref="WordPress.Security.EscapeOutput"/>
107+
<rule ref="WordPress.Security.NonceVerification"/>
108+
<rule ref="WordPress.Security.PluginMenuSlug"/>
109+
<rule ref="WordPress.Security.SafeRedirect"/>
110+
<rule ref="WordPress.Security.ValidatedSanitizedInput"/>
111+
<rule ref="WordPress.WP.AlternativeFunctions.curl"/>
112+
<rule ref="WordPress.WP.AlternativeFunctions.file_get_contents"/>
113+
<rule ref="WordPress.WP.AlternativeFunctions.file_system_read"/>
114+
<rule ref="WordPress.WP.AlternativeFunctions.strip_tags"/>
115+
<rule ref="WordPress.WP.AlternativeFunctions.rand_seeding"/>
116+
<rule ref="WordPress.WP.AlternativeFunctions.rand"/>
117+
<rule ref="WordPress.WP.CapitalPDangit"/>
118+
<rule ref="WordPress.WP.DeprecatedClasses"/>
119+
<rule ref="WordPress.WP.DeprecatedFunctions"/>
120+
<rule ref="WordPress.WP.DeprecatedParameters"/>
121+
<rule ref="WordPress.WP.DeprecatedParameterValues"/>
122+
<rule ref="WordPress.WP.DiscouragedConstants"/>
123+
<rule ref="WordPress.WP.DiscouragedFunctions"/>
124+
<rule ref="WordPress.WP.EnqueuedResourceParameters"/>
125+
<rule ref="WordPress.WP.EnqueuedResources"/>
126+
<rule ref="WordPress.WP.GlobalVariablesOverride"/>
127+
<rule ref="WordPress.WP.I18n"/>
128+
<rule ref="WordPress.WhiteSpace.CastStructureSpacing"/>
129+
130+
<!--
131+
Curated list of WordPress VIP rules.
132+
See https://github.com/Automattic/VIP-Coding-Standards/
133+
-->
134+
<rule ref="WordPressVIPMinimum.Classes.DeclarationCompatibility"/>
135+
<rule ref="WordPressVIPMinimum.Constants.IncludingNonPHPFile"/>
136+
<rule ref="WordPressVIPMinimum.Functions.DynamicCalls"/>
137+
<rule ref="WordPressVIPMinimum.Hooks.AlwaysReturnInFilter"/>
138+
<rule ref="WordPressVIPMinimum.Hooks.PreGetPosts"/>
139+
<rule ref="WordPressVIPMinimum.Performance.OrderByRand"/>
140+
<rule ref="WordPressVIPMinimum.Performance.RegexpCompare"/>
141+
<rule ref="WordPressVIPMinimum.Performance.TaxonomyMetaInOptions"/>
142+
<rule ref="WordPressVIPMinimum.Security.EscapingVoidReturnFunctions"/>
143+
<rule ref="WordPressVIPMinimum.Security.ExitAfterRedirect"/>
144+
<rule ref="WordPressVIPMinimum.Security.PHPFilterFunctions"/>
145+
<rule ref="WordPressVIPMinimum.Security.ProperEscapingFunction"/>
146+
<rule ref="WordPressVIPMinimum.Security.StaticStrreplace"/>
147+
<rule ref="WordPressVIPMinimum.Variables.RestrictedVariables.session"/>
148+
<rule ref="WordPressVIPMinimum.Variables.VariableAnalysis"/>
149+
<rule ref="WordPressVIPMinimum.VersionControl.MergeConflict"/>
75150

76151
<!--
77152
Generic
78153
-->
154+
<rule ref="Generic.Arrays.DisallowLongArraySyntax"/>
79155
<rule ref="Generic.Metrics.CyclomaticComplexity">
80156
<properties>
81157
<property name="absoluteComplexity" value="50"/>
@@ -103,10 +179,11 @@
103179
<rule ref="Squiz.Scope.MemberVarScope"/>
104180
<rule ref="Squiz.Scope.StaticThisUsage"/>
105181

182+
<rule ref="PHPCompatibility"/>
183+
106184
<!--
107185
Use own styles :)
108186
-->
109-
<rule ref="./Inpsyde/Sniffs/CodeQuality/AssignmentInsideConditionSniff.php"/>
110187
<rule ref="./Inpsyde/Sniffs/CodeQuality/DisallowShortOpenTagSniff.php"/>
111188
<rule ref="./Inpsyde/Sniffs/CodeQuality/ElementNameMinimalLengthSniff.php"/>
112189
<rule ref="./Inpsyde/Sniffs/CodeQuality/ForbiddenPublicPropertySniff.php"/>

0 commit comments

Comments
 (0)