Skip to content

Commit d74c2c5

Browse files
feat(ruleset): modernize class structure and replace legacy commenting sniffs (#9)
- Update ClassStructure to enforce grouping for PHPUnit fixtures and DI methods. - Disable rigid Squiz commenting sniffs; reliance shifted to Slevomat and types. - Allow fully qualified global functions and constants in ReferenceUsedNamesOnly. - Add DisallowVariableVariable and EmptyLinesAroundClassBraces sniffs. - Relax multi-line method signature constraints and increase namespace spacing.
1 parent 25dee6d commit d74c2c5

File tree

1 file changed

+61
-30
lines changed

1 file changed

+61
-30
lines changed

WPTechnix/ruleset.xml

Lines changed: 61 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<!-- ## BASE STANDARD: PSR-12 ## -->
99
<!-- ################################################################## -->
1010

11-
<rule ref="PSR12"/>
11+
<rule ref="PSR12" />
1212

1313
<!-- ################################################################## -->
1414
<!-- ## TYPE SAFETY ## -->
@@ -104,7 +104,7 @@
104104
<property name="nullPosition" value="last"/>
105105
</properties>
106106
</rule>
107-
107+
108108
<rule ref="SlevomatCodingStandard.TypeHints.UselessConstantTypeHint"/>
109109

110110
<!-- Disallow Array Type Hint Syntax (use generics in PHPDoc) -->
@@ -230,13 +230,7 @@
230230
<rule ref="SlevomatCodingStandard.Classes.RequireMultiLineMethodSignature">
231231
<properties>
232232
<property name="minLineLength" value="121"/>
233-
<property name="minParametersCount" value="4"/>
234-
<property name="withPromotedProperties" value="true"/>
235-
</properties>
236-
</rule>
237-
<rule ref="SlevomatCodingStandard.Classes.RequireSingleLineMethodSignature">
238-
<properties>
239-
<property name="maxLineLength" value="120"/>
233+
<property name="withPromotedProperties" value="true" />
240234
</properties>
241235
</rule>
242236

@@ -310,28 +304,61 @@
310304

311305
<rule ref="SlevomatCodingStandard.Classes.ClassStructure">
312306
<properties>
307+
<property name="methodGroups" type="array">
308+
<element key="inject method" value="inject"/>
309+
<element key="inject methods" value="inject*"/>
310+
<element key="phpunit before" value="setUp, @before, #PHPUnit\Framework\Attributes\Before"/>
311+
<element key="phpunit data provider" value="*DataProvider"/>
312+
</property>
313+
313314
<property name="groups" type="array">
315+
<!-- Imports & enum cases -->
314316
<element value="uses"/>
315317
<element value="enum cases"/>
318+
319+
<!-- Constants -->
316320
<element value="public constants"/>
317-
<element value="protected constants"/>
318-
<element value="private constants"/>
319-
<element value="public static properties"/>
320-
<element value="protected static properties"/>
321-
<element value="private static properties"/>
322-
<element value="public properties"/>
323-
<element value="protected properties"/>
324-
<element value="private properties"/>
321+
<element value="constants"/>
322+
323+
<!-- Properties -->
324+
<element value="public properties, protected properties, private properties, public static properties, protected static properties, private static properties"/>
325+
326+
<!-- Constructor / special methods -->
325327
<element value="constructor"/>
326328
<element value="static constructors"/>
327-
<element value="destructor"/>
328-
<element value="magic methods"/>
329+
330+
<!-- Custom method groups -->
331+
<element value="inject method"/>
332+
<element value="inject methods"/>
333+
<element value="phpunit before"/>
334+
335+
<!-- Methods -->
336+
<element value="public static final methods"/>
337+
<element value="public static abstract methods"/>
338+
<element value="protected static final methods"/>
339+
<element value="protected static abstract methods"/>
340+
329341
<element value="public static methods"/>
330342
<element value="protected static methods"/>
331343
<element value="private static methods"/>
344+
345+
<element value="public final methods"/>
346+
<element value="public abstract methods"/>
347+
<element value="protected final methods"/>
348+
<element value="protected abstract methods"/>
349+
332350
<element value="public methods"/>
333351
<element value="protected methods"/>
334352
<element value="private methods"/>
353+
354+
<!-- PHPUnit data providers after normal methods -->
355+
<element value="phpunit data provider"/>
356+
357+
<!-- Magic methods last -->
358+
<element value="magic methods"/>
359+
360+
<!-- Destructor last -->
361+
<element value="destructor"/>
335362
</property>
336363
</properties>
337364
</rule>
@@ -350,6 +377,13 @@
350377
<rule ref="SlevomatCodingStandard.Classes.DisallowMultiPropertyDefinition"/>
351378
<rule ref="SlevomatCodingStandard.Classes.DisallowStringExpressionPropertyFetch"/>
352379

380+
<rule ref="SlevomatCodingStandard.Classes.EmptyLinesAroundClassBraces">
381+
<properties>
382+
<property name="linesCountAfterOpeningBrace" value="0"/>
383+
<property name="linesCountBeforeClosingBrace" value="0"/>
384+
</properties>
385+
</rule>
386+
353387
<rule ref="SlevomatCodingStandard.Classes.EnumCaseSpacing">
354388
<properties>
355389
<property name="minLinesCountBeforeWithComment" value="1"/>
@@ -412,7 +446,6 @@
412446
<property name="allowOnSameLine" value="false"/>
413447
</properties>
414448
</rule>
415-
<rule ref="SlevomatCodingStandard.Attributes.AttributesOrder"/>
416449
<rule ref="SlevomatCodingStandard.Attributes.DisallowAttributesJoining"/>
417450
<rule ref="SlevomatCodingStandard.Attributes.DisallowMultipleAttributesPerLine"/>
418451
<rule ref="SlevomatCodingStandard.Attributes.RequireAttributeAfterDocComment"/>
@@ -605,16 +638,12 @@
605638
</rule>
606639

607640
<rule ref="SlevomatCodingStandard.Namespaces.DisallowGroupUse"/>
608-
<rule ref="SlevomatCodingStandard.Namespaces.FullyQualifiedClassNameInAnnotation"/>
609-
<rule ref="SlevomatCodingStandard.Namespaces.FullyQualifiedExceptions"/>
610-
<rule ref="SlevomatCodingStandard.Namespaces.FullyQualifiedGlobalConstants"/>
611-
<rule ref="SlevomatCodingStandard.Namespaces.FullyQualifiedGlobalFunctions"/>
612641
<rule ref="SlevomatCodingStandard.Namespaces.MultipleUsesPerLine"/>
613642
<rule ref="SlevomatCodingStandard.Namespaces.NamespaceDeclaration"/>
614643

615644
<rule ref="SlevomatCodingStandard.Namespaces.NamespaceSpacing">
616645
<properties>
617-
<property name="linesCountBeforeNamespace" value="0"/>
646+
<property name="linesCountBeforeNamespace" value="1"/>
618647
<property name="linesCountAfterNamespace" value="1"/>
619648
</properties>
620649
</rule>
@@ -623,8 +652,8 @@
623652
<properties>
624653
<property name="searchAnnotations" value="true"/>
625654
<property name="allowFullyQualifiedGlobalClasses" value="false"/>
626-
<property name="allowFullyQualifiedGlobalFunctions" value="false"/>
627-
<property name="allowFullyQualifiedGlobalConstants" value="false"/>
655+
<property name="allowFullyQualifiedGlobalFunctions" value="true"/>
656+
<property name="allowFullyQualifiedGlobalConstants" value="true"/>
628657
<property name="allowFallbackGlobalFunctions" value="false"/>
629658
<property name="allowFallbackGlobalConstants" value="false"/>
630659
<property name="allowPartialUses" value="false"/>
@@ -711,6 +740,7 @@
711740
</properties>
712741
</rule>
713742
<rule ref="SlevomatCodingStandard.Variables.UselessVariable"/>
743+
<rule ref="SlevomatCodingStandard.Variables.DisallowVariableVariable"/>
714744

715745
<!-- ################################################################## -->
716746
<!-- ## WHITESPACES ## -->
@@ -725,6 +755,7 @@
725755
</properties>
726756
</rule>
727757

758+
728759
<!-- ################################################################## -->
729760
<!-- ## SQUIZ STANDARD ## -->
730761
<!-- ################################################################## -->
@@ -783,10 +814,10 @@
783814
</properties>
784815
</rule>
785816
<rule ref="Squiz.Commenting.VariableComment" />
786-
<rule ref="Squiz.Commenting.BlockComment" />
787-
<rule ref="Squiz.Commenting.FileComment" />
817+
<!-- <rule ref="Squiz.Commenting.BlockComment" />-->
818+
<!-- <rule ref="Squiz.Commenting.FileComment" />-->
788819
<rule ref="Squiz.Commenting.ClassComment" />
789-
<rule ref="Squiz.Commenting.FunctionComment"/>
820+
<!-- <rule ref="Squiz.Commenting.FunctionComment"/>-->
790821
<rule ref="Squiz.Commenting.InlineComment" />
791822
<rule ref="PEAR.Commenting.InlineComment"/>
792823

0 commit comments

Comments
 (0)