juliangut/slim-booboo-middleware

View on GitHub
phpmd.xml

Summary

Maintainability
Test Coverage
<?xml version="1.0" encoding="UTF-8"?>

<ruleset name="Slim Framework BooBoo middleware PHPMD Rule Set"
         xmlns="http://pmd.sf.net/ruleset/1.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0
                        http://pmd.sf.net/ruleset_xml_schema.xsd"
         xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
    <description>Slim Framework BooBoo middleware PHPMD Rule Set</description>

    <!-- Unused code rules -->
    <!-- <rule ref="rulesets/unusedcode.xml" /> -->
    <!-- Unused private attributes -->
    <rule ref="rulesets/unusedcode.xml/UnusedPrivateField"/>
    <!-- Unused private methods -->
    <rule ref="rulesets/unusedcode.xml/UnusedPrivateMethod"/>
    <!-- Unused local variables -->
    <rule ref="rulesets/unusedcode.xml/UnusedLocalVariable"/>
    <!-- Unused method parameter -->
    <rule ref="rulesets/unusedcode.xml/UnusedFormalParameter"/>


    <!-- Naming rules -->
    <!-- <rule ref="rulesets/naming.xml" /> -->
    <!-- Class constructors should be __construct -->
    <rule ref="rulesets/naming.xml/ConstructorWithNameAsEnclosingClass" />
    <!-- Uppercased class/interface constants -->
    <rule ref="rulesets/naming.xml/ConstantNamingConventions"/>
    <!-- Boolean method should be of the form isX() or hasX() -->
    <rule ref="rulesets/naming.xml/BooleanGetMethodName">
        <properties>
            <property name="checkParameterizedMethods" value="true"/>
        </properties>
    </rule>
    <!-- Method minimum length (3) -->
    <rule ref="rulesets/naming.xml/ShortMethodName">
        <properties>
            <property name="minimum" value="3"/>
        </properties>
    </rule>
    <!-- Variable minimum length (3), not for variables in for statements -->
    <rule ref="rulesets/naming.xml/ShortVariable">
        <properties>
            <property name="minimum" value="3"/>
        </properties>
    </rule>
    <!-- Variable maximum length (20) -->
    <!-- <rule ref="rulesets/naming.xml/LongVariable">
        <properties>
            <property name="maximum" value="20"/>
        </properties>
    </rule> -->


    <!-- Design rules -->
    <!-- <rule ref="rulesets/design.xml" /> -->
    <!-- Arbitrary exit code -->
    <rule ref="rulesets/design.xml/ExitExpression"/>
    <!-- Eval expressions -->
    <rule ref="rulesets/design.xml/EvalExpression"/>
    <!-- Goto statements -->
    <rule ref="rulesets/design.xml/GotoStatement"/>
    <!-- Excessive number of children (15) -->
    <rule ref="rulesets/design.xml/NumberOfChildren">
        <properties>
            <property name="minimum" value="15"/>
        </properties>
    </rule>
    <!-- Excessive inheritance depth (6) -->
    <rule ref="rulesets/design.xml/DepthOfInheritance">
    <properties>
            <property name="minimum" value="6"/>
        </properties>
    </rule>
    <!-- Excessive class dependencies (13) -->
    <rule ref="rulesets/design.xml/CouplingBetweenObjects">
        <properties>
            <property name="minimum" value="13"/>
        </properties>
    </rule>


    <!-- Controversial rules -->
    <!-- <rule ref="rulesets/controversial.xml" /> -->
    <!-- Avoid superglobals -->
    <rule ref="rulesets/controversial.xml/Superglobals" />
    <!-- Use camelCase class name-->
    <rule ref="rulesets/controversial.xml/CamelCaseClassName" />
    <!-- Use camelCase class attribute names -->
    <rule ref="rulesets/controversial.xml/CamelCasePropertyName" />
    <!-- Use camelCase class method names -->
    <rule ref="rulesets/controversial.xml/CamelCaseMethodName" />
    <!-- Use camelCase class method parameter names -->
    <rule ref="rulesets/controversial.xml/CamelCaseParameterName" />
    <!-- Use camelCase class method variable names -->
    <!-- <rule ref="rulesets/controversial.xml/CamelCaseVariableName" /> -->


    <!-- Code size rules -->
    <!-- <rule ref="rulesets/codesize.xml" /> -->
    <!-- Cyclomatic complexity: number of decision points in a method
        plus one for the method entry. 1-4 low, 5-7 moderate, 8-10 high,
        11+ very high (threshold is 10) -->
    <rule ref="rulesets/codesize.xml/CyclomaticComplexity">
        <properties>
            <property name="reportLevel" value="10"/>
        </properties>
    </rule>
    <!-- Acyclic execution paths on a method (threshold is 200) -->
    <rule ref="rulesets/codesize.xml/NPathComplexity">
        <properties>
            <property name="minimum" value="200"/>
        </properties>
    </rule>
    <!-- Excessive class length (1000) -->
    <rule ref="rulesets/codesize.xml/ExcessiveClassLength">
        <properties>
            <property name="minimum" value="1000"/>
        </properties>
    </rule>
    <!-- Excessive method length (150) -->
    <rule ref="rulesets/codesize.xml/ExcessiveMethodLength">
        <properties>
            <property name="minimum" value="150" />
        </properties>
    </rule>
    <!-- Excessive parameters list (8) -->
    <rule ref="rulesets/codesize.xml/ExcessiveParameterList">
        <properties>
            <property name="minimum" value="8" />
        </properties>
    </rule>
    <!-- Excessive class attributes (15) -->
    <rule ref="rulesets/codesize.xml/TooManyFields">
        <properties>
            <property name="maxfields" value="15"/>
        </properties>
    </rule>
    <!-- Excessive class methods (20) -->
    <rule ref="rulesets/codesize.xml/TooManyMethods">
        <properties>
            <property name="maxmethods" value="20"/>
        </properties>
    </rule>
    <!-- Excessive WMC, time and effort to modify and maintain class (500) -->
    <rule ref="rulesets/codesize.xml/ExcessiveClassComplexity">
        <properties>
            <property name="maximum" value="500"/>
        </properties>
    </rule>
</ruleset>