efureev/php-support

View on GitHub
.phpcs.xml

Summary

Maintainability
Test Coverage
<?xml version="1.0"?>
<ruleset name="PSR2">
    <description>The PSR2 coding standard.</description>
    <rule ref="PSR12"/>
    <file>src/</file>
<!--    <file>tests/</file>-->
    <exclude-pattern>vendor</exclude-pattern>
    <exclude-pattern>resources</exclude-pattern>
    <exclude-pattern>database</exclude-pattern>
    <exclude-pattern>coverage</exclude-pattern>
    <exclude-pattern>node_modules</exclude-pattern>
    <!-- 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.ControlStructures.ControlSignature"/>
<!--    <rule ref="Squiz.ControlStructures.ElseIfDeclaration"/>-->
    <!--    <rule ref="Squiz.Commenting.VariableComment"/>-->
    <rule ref="Squiz.Functions.FunctionDeclarationArgumentSpacing"/>

    <rule ref="Squiz.Scope.MethodScope"/>
    <rule ref="Squiz.Strings.ConcatenationSpacing">
        <properties>
            <property name="spacing" value="1"/>
        </properties>
    </rule>
    <rule ref="Squiz.WhiteSpace.ControlStructureSpacing"/>
    <!--    <rule ref="Squiz.WhiteSpace.FunctionClosingBraceSpace"/>-->
    <!--    <rule ref="Squiz.WhiteSpace.FunctionSpacing"/>-->
    <!--    <rule ref="Squiz.WhiteSpace.MemberVarSpacing"/>-->
    <!--    <rule ref="Squiz.WhiteSpace.OperatorSpacing"/>-->
    <!--    <rule ref="Squiz.WhiteSpace.SuperfluousWhitespace"/>-->
    <!--        <rule ref="Generic.Arrays.DisallowLongArraySyntax"/>-->
    <rule ref="Generic.Commenting.Todo"/>
    <rule ref="Generic.ControlStructures.DisallowYodaConditions"/>
    <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="Generic.WhiteSpace.IncrementDecrementSpacing"/>-->
    <!--    <rule ref="PSR2.Files.EndFileNewline"/>-->
    <rule ref="PSR12.Files.OpenTag"/>
    <!--    <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>