phpcs.xml.dist 5.78 KB
Newer Older
Ketan's avatar
Ketan committed
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 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
<?xml version="1.0"?>
<ruleset name="PHP_CodeSniffer">
    <description>The coding standard for PHP_CodeSniffer itself.</description>

    <file>autoload.php</file>
    <file>bin</file>
    <file>scripts</file>
    <file>src</file>
    <file>tests</file>

    <exclude-pattern>*/Standards/*/Tests/*\.(inc|css|js)</exclude-pattern>

    <arg name="basepath" value="."/>
    <arg name="colors" />
    <arg name="parallel" value="75" />
    <arg value="np"/>

    <!-- Don't hide tokenizer exceptions -->
    <rule ref="Internal.Tokenizer.Exception">
        <type>error</type>
    </rule>

    <!-- Include the whole PEAR standard -->
    <rule ref="PEAR">
        <exclude name="PEAR.NamingConventions.ValidFunctionName" />
        <exclude name="PEAR.NamingConventions.ValidVariableName" />
        <exclude name="PEAR.Commenting.ClassComment" />
        <exclude name="PEAR.Commenting.FileComment.MissingCategoryTag" />
        <exclude name="PEAR.Commenting.FileComment.MissingPackageTag" />
        <exclude name="PEAR.Commenting.FileComment.MissingLinkTag" />
        <exclude name="PEAR.Commenting.FileComment.MissingVersion" />
        <exclude name="PEAR.Commenting.InlineComment" />
    </rule>

    <!-- Include some sniffs from other standards that don't conflict with PEAR -->
    <rule ref="Squiz.Arrays.ArrayBracketSpacing" />
    <rule ref="Squiz.Arrays.ArrayDeclaration" />
    <rule ref="Squiz.Commenting.ClosingDeclarationComment" />
    <rule ref="Squiz.ControlStructures.ControlSignature" />
    <rule ref="Squiz.ControlStructures.ElseIfDeclaration" />
    <rule ref="Squiz.Commenting.BlockComment" />
    <rule ref="Squiz.Commenting.DocCommentAlignment" />
    <rule ref="Squiz.Commenting.EmptyCatchComment" />
    <rule ref="Squiz.Commenting.InlineComment" />
    <rule ref="Squiz.Commenting.LongConditionClosingComment" />
    <rule ref="Squiz.Commenting.PostStatementComment" />
    <rule ref="Squiz.Commenting.VariableComment" />
    <rule ref="Squiz.Formatting.OperatorBracket" />
    <rule ref="Squiz.Functions.FunctionDeclarationArgumentSpacing" />
    <rule ref="Squiz.Operators.ComparisonOperatorUsage" />
    <rule ref="Squiz.PHP.DisallowInlineIf" />
    <rule ref="Squiz.Scope.MethodScope" />
    <rule ref="Squiz.Strings.ConcatenationSpacing" />
    <rule ref="Squiz.WhiteSpace.ControlStructureSpacing" />
    <rule ref="Squiz.WhiteSpace.FunctionClosingBraceSpace" />
    <rule ref="Squiz.WhiteSpace.FunctionSpacing" />
    <rule ref="Squiz.WhiteSpace.OperatorSpacing" />
    <rule ref="Squiz.WhiteSpace.SuperfluousWhitespace" />
    <rule ref="Generic.Arrays.DisallowLongArraySyntax"/>
    <rule ref="Generic.Commenting.Todo"/>
    <rule ref="Generic.ControlStructures.InlineControlStructure"/>
    <rule ref="Generic.Formatting.DisallowMultipleStatements"/>
    <rule ref="Generic.Formatting.SpaceAfterCast"/>
    <rule ref="Generic.NamingConventions.ConstructorName"/>
    <rule ref="Generic.PHP.DeprecatedFunctions"/>
    <rule ref="Generic.PHP.LowerCaseKeyword"/>
    <rule ref="Generic.Strings.UnnecessaryStringConcat"/>
    <rule ref="PSR2.Classes.PropertyDeclaration"/>
    <rule ref="PSR2.Methods.MethodDeclaration"/>
    <rule ref="PSR2.Files.EndFileNewline"/>
    <rule ref="Zend.Files.ClosingTag"/>

    <!-- PEAR uses warnings for inline control structures, so switch back to errors -->
    <rule ref="Generic.ControlStructures.InlineControlStructure">
        <properties>
            <property name="error" value="true"/>
        </properties>
    </rule>

     <!-- We use custom indent rules for arrays -->
    <rule ref="Generic.Arrays.ArrayIndent"/>
    <rule ref="Squiz.Arrays.ArrayDeclaration.KeyNotAligned">
        <severity>0</severity>
    </rule>
    <rule ref="Squiz.Arrays.ArrayDeclaration.ValueNotAligned">
        <severity>0</severity>
    </rule>
    <rule ref="Squiz.Arrays.ArrayDeclaration.CloseBraceNotAligned">
        <severity>0</severity>
    </rule>
    <rule ref="Squiz.Arrays.ArrayDeclaration.CloseBraceNewLine">
        <severity>0</severity>
    </rule>

    <!-- Check var names, but we don't want leading underscores for private vars -->
    <rule ref="Squiz.NamingConventions.ValidVariableName" />
    <rule ref="Squiz.NamingConventions.ValidVariableName.PrivateNoUnderscore">
        <severity>0</severity>
    </rule>

    <!-- Only one argument per line in multi-line function calls -->
    <rule ref="PEAR.Functions.FunctionCallSignature">
        <properties>
            <property name="allowMultipleArguments" value="false"/>
        </properties>
    </rule>

    <!-- Have 12 chars padding maximum and always show as errors -->
    <rule ref="Generic.Formatting.MultipleStatementAlignment">
        <properties>
            <property name="maxPadding" value="12"/>
            <property name="error" value="true"/>
        </properties>
    </rule>

    <!-- Ban some functions -->
    <rule ref="Generic.PHP.ForbiddenFunctions">
        <properties>
            <property name="forbiddenFunctions" type="array">
                <element key="sizeof" value="count"/>
                <element key="delete" value="unset"/>
                <element key="print" value="echo"/>
                <element key="is_null" value="null"/>
                <element key="create_function" value="null"/>
            </property>
        </properties>
    </rule>

    <!-- Private methods MUST not be prefixed with an underscore -->
    <rule ref="PSR2.Methods.MethodDeclaration.Underscore">
        <type>error</type>
    </rule>

    <!-- Private properties MUST not be prefixed with an underscore -->
    <rule ref="PSR2.Classes.PropertyDeclaration.Underscore">
        <type>error</type>
    </rule>

    <!-- The testing bootstrap file uses string concats to stop IDEs seeing the class aliases -->
    <rule ref="Generic.Strings.UnnecessaryStringConcat">
        <exclude-pattern>tests/bootstrap.php</exclude-pattern>
    </rule>

</ruleset>