<?xml version="1.0"?>
<ruleset name="SilverStripe">
    <description>CodeSniffer ruleset for SilverStripe coding conventions.</description>

    <!-- Use PSR-2 as a base standard -->
    <rule ref="PSR2">
        <!-- Current exclusions -->
        <exclude name="PSR1.Methods.CamelCapsMethodName" />
        <exclude name="PSR1.Files.SideEffects.FoundWithSymbols" />
        <exclude name="PSR1.Classes.ClassDeclaration" />
        <exclude name="PSR2.Classes.PropertyDeclaration" />
        <exclude name="PSR2.ControlStructures.SwitchDeclaration" />
        <!-- causes php notice while linting -->
        <exclude name="PSR2.ControlStructures.SwitchDeclaration.WrongOpenercase" />
        <exclude name="PSR2.ControlStructures.SwitchDeclaration.WrongOpenerdefault" />
        <exclude name="PSR2.ControlStructures.SwitchDeclaration.TerminatingComment" />
        <exclude name="PSR2.Methods.MethodDeclaration.Underscore" />
        <exclude name="Squiz.Scope.MethodScope" />
        <exclude name="Squiz.Classes.ValidClassName.NotCamelCaps" />
        <exclude name="Generic.Files.LineLength.TooLong" />
        <exclude name="PEAR.Functions.ValidDefaultValue.NotAtEnd" />
    </rule>
</ruleset>
