![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/vendor/phpmd/phpmd/src/main/resources/rulesets/ |
<?xml version="1.0" encoding="UTF-8"?> <ruleset name="Naming Rules" 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> The Naming Ruleset contains a collection of rules about names - too long, too short, and so forth. </description> <rule name="LongClassName" since="2.9" message="Avoid excessively long class names like {0}. Keep class name length under {1}." class="PHPMD\Rule\Naming\LongClassName" externalInfoUrl="https://phpmd.org/rules/naming.html#longclassname"> <description> Detects when classes or interfaces are declared with excessively long names. </description> <priority>3</priority> <properties> <property name="maximum" description="The class name length reporting threshold" value="40"/> <property name="subtract-prefixes" description="Comma-separated list of prefixes that will not count in the length of the class name. Only the first matching prefix will be subtracted." value=""/> <property name="subtract-suffixes" description="Comma-separated list of suffixes that will not count in the length of the class name. Only the first matching suffix will be subtracted." value=""/> </properties> <example> <![CDATA[ class ATooLongClassNameThatHintsAtADesignProblem { } interface ATooLongInterfaceNameThatHintsAtADesignProblem { } class ClassGroupPrefixesThatIsUsedForGrouping { } ]]> </example> </rule> <rule name="ShortClassName" since="2.9" message="Avoid classes with short names like {0}. Configured minimum length is {1}." class="PHPMD\Rule\Naming\ShortClassName" externalInfoUrl="https://phpmd.org/rules/naming.html#shortclassname"> <description> Detects when classes or interfaces have a very short name. </description> <priority>3</priority> <properties> <property name="minimum" description="The class name length reporting threshold" value="3"/> <property name="exceptions" description="Comma-separated list of exceptions. Example: Log,URL,FTP" value=""/> </properties> <example> <![CDATA[ class Fo { } interface Fo { } ]]> </example> </rule> <rule name="ShortVariable" since="0.2" message="Avoid variables with short names like {0}. Configured minimum length is {1}." class="PHPMD\Rule\Naming\ShortVariable" externalInfoUrl="https://phpmd.org/rules/naming.html#shortvariable"> <description> Detects when a field, local, or parameter has a very short name. </description> <priority>3</priority> <properties> <property name="minimum" description="Minimum length for a variable, property or parameter name" value="3"/> <property name="exceptions" description="Comma-separated list of exceptions" value=""/> </properties> <example> <![CDATA[ class Something { private $q = 15; // VIOLATION - Field public static function main( array $as ) { // VIOLATION - Formal $r = 20 + $this->q; // VIOLATION - Local for (int $i = 0; $i < 10; $i++) { // Not a Violation (inside FOR) $r += $this->q; } } } ]]> </example> </rule> <rule name="LongVariable" since="0.2" message="Avoid excessively long variable names like {0}. Keep variable name length under {1}." class="PHPMD\Rule\Naming\LongVariable" externalInfoUrl="https://phpmd.org/rules/naming.html#longvariable"> <description> Detects when a field, formal or local variable is declared with a long name. </description> <priority>3</priority> <properties> <property name="maximum" description="The variable length reporting threshold" value="20"/> <property name="subtract-prefixes" description="Comma-separated list of prefixes that will not count in the length of the variable name. Only the first matching prefix will be subtracted." value=""/> <property name="subtract-suffixes" description="Comma-separated list of suffixes that will not count in the length of the variable name. Only the first matching suffix will be subtracted." value=""/> </properties> <example> <![CDATA[ class Something { protected $reallyLongIntName = -3; // VIOLATION - Field protected $hungarianUintArrOptions = []; // VIOLATION - Field public static function main( array $interestingArgumentsList[] ) { // VIOLATION - Formal $otherReallyLongName = -5; // VIOLATION - Local for ($interestingIntIndex = 0; // VIOLATION - For $interestingIntIndex < 10; $interestingIntIndex++ ) { } } } ]]> </example> </rule> <rule name="ShortMethodName" since="0.2" message="Avoid using short method names like {0}::{1}(). The configured minimum method name length is {2}." class="PHPMD\Rule\Naming\ShortMethodName" externalInfoUrl="https://phpmd.org/rules/naming.html#shortmethodname"> <description> Detects when very short method names are used. </description> <priority>3</priority> <properties> <property name="minimum" description="Minimum length for a method or function name" value="3"/> <property name="exceptions" description="Comma-separated list of exceptions" value=""/> </properties> <example> <![CDATA[ class ShortMethod { public function a( $index ) { // Violation } } ]]> </example> </rule> <rule name="ConstructorWithNameAsEnclosingClass" since="0.2" message="Classes should not have a constructor method with the same name as the class" class="PHPMD\Rule\Naming\ConstructorWithNameAsEnclosingClass" externalInfoUrl="https://phpmd.org/rules/naming.html#constructorwithnameasenclosingclass"> <description> A constructor method should not have the same name as the enclosing class, consider to use the PHP 5 __construct method. </description> <priority>3</priority> <example> <![CDATA[ class MyClass { // this is bad because it is PHP 4 style public function MyClass() {} // this is good because it is a PHP 5 constructor public function __construct() {} } ]]> </example> </rule> <rule name="ConstantNamingConventions" since="0.2" message="Constant {0} should be defined in uppercase" class="PHPMD\Rule\Naming\ConstantNamingConventions" externalInfoUrl="https://phpmd.org/rules/naming.html#constantnamingconventions"> <description> Class/Interface constant names should always be defined in uppercase. </description> <priority>4</priority> <properties /> <example> <![CDATA[ class Foo { const MY_NUM = 0; // ok const myTest = ""; // fail } ]]> </example> </rule> <rule name="BooleanGetMethodName" since="0.2" message="The '{0}()' method which returns a boolean should be named 'is...()' or 'has...()'" class="PHPMD\Rule\Naming\BooleanGetMethodName" externalInfoUrl="https://phpmd.org/rules/naming.html#booleangetmethodname"> <description> Looks for methods named 'getX()' with 'boolean' as the return type. The convention is to name these methods 'isX()' or 'hasX()'. </description> <priority>4</priority> <properties> <property name="checkParameterizedMethods" value="false" description="Applies only to methods without parameter when set to true" /> </properties> <example> <![CDATA[ class Foo { /** * @return boolean */ public function getFoo() {} // bad /** * @return bool */ public function isFoo(); // ok /** * @return boolean */ public function getFoo($bar); // ok, unless checkParameterizedMethods=true } ]]> </example> </rule> <!-- <rule name="VariableNamingConventions" since="1.2" message="{0} variable {1} should begin with {2}" class="net.sourceforge.pmd.rules.VariableNamingConventions" externalInfoUrl="http://pmd.sourceforge.net/rules/naming.html#VariableNamingConventions"> <description> A variable naming conventions rule - customize this to your liking. Currently, it checks for final variables that should be fully capitalized and non-final variables that should not include underscores. </description> <priority>1</priority> <properties> <property name="staticPrefix" description="A prefix for static variables" value=""/> <property name="staticSuffix" description="A suffix for static variables" value=""/> <property name="memberPrefix" description="A prefix for member variables" value=""/> <property name="memberSuffix" description="A suffix for member variables" value=""/> </properties> <example> <![CDATA[ public class Foo { public static final int MY_NUM = 0; public String myTest = ""; DataModule dmTest = new DataModule(); } ]]> </example> </rule> <rule name="MethodNamingConventions" since="1.2" message="Method name does not begin with a lower case character." class="net.sourceforge.pmd.rules.MethodNamingConventions" externalInfoUrl="http://pmd.sourceforge.net/rules/naming.html#MethodNamingConventions"> <description> Method names should always begin with a lower case character, and should not contain underscores. </description> <priority>1</priority> <example> <![CDATA[ public class Foo { public void fooStuff() { } } ]]> </example> </rule> <rule name="ClassNamingConventions" since="1.2" message="Class names should begin with an uppercase character" class="net.sourceforge.pmd.rules.ClassNamingConventions" externalInfoUrl="http://pmd.sourceforge.net/rules/naming.html#ClassNamingConventions"> <description> Class names should always begin with an upper case character. </description> <priority>1</priority> <example> <![CDATA[ public class Foo {} ]]> </example> </rule> <rule name="AbstractNaming" since="1.4" message="Abstract classes should be named 'AbstractXXX'" class="net.sourceforge.pmd.rules.XPathRule" externalInfoUrl="http://pmd.sourceforge.net/rules/naming.html#AbstractNaming"> <description> Abstract classes should be named 'AbstractXXX'. </description> <priority>3</priority> <properties> <property name="xpath"> <value> <![CDATA[ //ClassOrInterfaceDeclaration [@Abstract='true' and @Interface='false'] [not (starts-with(@Image,'Abstract'))] ]]> </value> </property> </properties> <example> <![CDATA[ public abstract class Foo { // should be AbstractFoo } ]]> </example> </rule> <rule name="AvoidFieldNameMatchingTypeName" since="3.0" message="It is somewhat confusing to have a field name matching the declaring class name" class="net.sourceforge.pmd.rules.AvoidFieldNameMatchingTypeName" externalInfoUrl="http://pmd.sourceforge.net/rules/naming.html#AvoidFieldNameMatchingTypeName"> <description> It is somewhat confusing to have a field name matching the declaring class name. This probably means that type and or field names could be more precise. </description> <priority>3</priority> <example> <![CDATA[ public class Foo extends Bar { // There's probably a better name for foo int foo; } ]]> </example> </rule> <rule name="AvoidFieldNameMatchingMethodName" since="3.0" message="It is somewhat confusing to have a field name with the same name as a method" class="net.sourceforge.pmd.rules.AvoidFieldNameMatchingMethodName" externalInfoUrl="http://pmd.sourceforge.net/rules/naming.html#AvoidFieldNameMatchingMethodName"> <description> It is somewhat confusing to have a field name with the same name as a method. While this is totally legal, having information (field) and actions (method) is not clear naming. </description> <priority>3</priority> <example> <![CDATA[ public class Foo { Object bar; // bar is data or an action or both? void bar() { } } ]]> </example> </rule> <rule name="NoPackage" since="3.3" message="All classes and interfaces must belong to a named package" class="net.sourceforge.pmd.rules.XPathRule" externalInfoUrl="http://pmd.sourceforge.net/rules/naming.html#NoPackage"> <description> Detects when a class or interface does not have a package definition. </description> <priority>3</priority> <properties> <property name="xpath" pluginname="true"> <value> <![CDATA[ //ClassOrInterfaceDeclaration[count(preceding::PackageDeclaration) = 0] ]]> </value> </property> </properties> <example> <![CDATA[ // no package declaration public class ClassInDefaultPackage { } ]]> </example> </rule> <rule name="MisleadingVariableName" since="3.4" message="Avoid naming non-fields with the prefix 'm_'" class="net.sourceforge.pmd.rules.XPathRule" externalInfoUrl="http://pmd.sourceforge.net/rules/naming.html#MisleadingVariableName"> <description> Detects when a non-field has a name starting with 'm_'. This usually indicates a field and thus is confusing. </description> <priority>3</priority> <properties> <property name="xpath" pluginname="true"> <value> <![CDATA[ //VariableDeclaratorId [starts-with(@Image, 'm_')] [not (../../../FieldDeclaration)] ]]> </value> </property> </properties> <example> <![CDATA[ public class Foo { private int m_foo; // OK public void bar(String m_baz) { // Bad int m_boz = 42; // Bad } } ]]> </example> </rule> --> </ruleset>