phpcs.xml.dist 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. <?xml version="1.0"?>
  2. <ruleset
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:noNamespaceSchemaLocation="vendor/squizlabs/php_codesniffer/phpcs.xsd"
  5. >
  6. <arg name="basepath" value="."/>
  7. <arg name="extensions" value="php"/>
  8. <arg name="parallel" value="80"/>
  9. <arg name="cache" value=".phpcs-cache"/>
  10. <arg name="colors"/>
  11. <!-- Show progress of the run and show sniff names -->
  12. <arg value="ps"/>
  13. <file>lib</file>
  14. <file>tests</file>
  15. <rule ref="Doctrine">
  16. <exclude name="SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint"/>
  17. <exclude name="SlevomatCodingStandard.TypeHints.ReturnTypeHint.MissingNativeTypeHint"/>
  18. <exclude name="SlevomatCodingStandard.TypeHints.DeclareStrictTypes"/>
  19. <exclude name="SlevomatCodingStandard.Classes.SuperfluousAbstractClassNaming"/>
  20. <exclude name="SlevomatCodingStandard.Classes.SuperfluousExceptionNaming"/>
  21. <exclude name="SlevomatCodingStandard.Classes.SuperfluousTraitNaming.SuperfluousSuffix"/>
  22. <exclude name="SlevomatCodingStandard.Classes.DisallowLateStaticBindingForConstants.DisallowedLateStaticBindingForConstant"/>
  23. <exclude name="SlevomatCodingStandard.ControlStructures.ControlStructureSpacing.IncorrectLinesCountAfterLastControlStructure"/>
  24. <exclude name="PSR2.Methods.MethodDeclaration.Underscore"/>
  25. <!-- https://github.com/slevomat/coding-standard/issues/867 -->
  26. <exclude name="SlevomatCodingStandard.ControlStructures.JumpStatementsSpacing.IncorrectLinesCountAfterLastControlStructure"/>
  27. <!-- See https://github.com/squizlabs/PHP_CodeSniffer/issues/2937 -->
  28. <exclude name="Squiz.Arrays.ArrayDeclaration.ValueNoNewline"/>
  29. <exclude name="Squiz.NamingConventions.ValidVariableName.PublicHasUnderscore"/>
  30. </rule>
  31. <!-- Disable the rules that will require PHP 7.4 -->
  32. <rule ref="SlevomatCodingStandard.TypeHints.PropertyTypeHint">
  33. <properties>
  34. <property name="enableNativeTypeHint" value="false"/>
  35. </properties>
  36. </rule>
  37. <rule ref="PSR1.Methods.CamelCapsMethodName.NotCamelCaps">
  38. <exclude-pattern>*/lib/Doctrine/Common/Annotations/DocParser.php</exclude-pattern>
  39. </rule>
  40. <rule ref="Squiz.Classes.ValidClassName.NotCamelCaps">
  41. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassNoNamespaceNoComment.php</exclude-pattern>
  42. </rule>
  43. <rule ref="SlevomatCodingStandard.Namespaces.ReferenceUsedNamesOnly">
  44. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/*</exclude-pattern>
  45. </rule>
  46. <rule ref="SlevomatCodingStandard.Commenting.ForbiddenAnnotations.AnnotationForbidden">
  47. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/*</exclude-pattern>
  48. </rule>
  49. <rule ref="SlevomatCodingStandard.Namespaces.UseDoesNotStartWithBackslash.UseStartsWithBackslash">
  50. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/*</exclude-pattern>
  51. </rule>
  52. <rule ref="PSR12.Files.ImportStatement.LeadingSlash">
  53. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/*</exclude-pattern>
  54. </rule>
  55. <rule ref="SlevomatCodingStandard.TypeHints.LongTypeHints.UsedLongTypeHint">
  56. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/*</exclude-pattern>
  57. </rule>
  58. <rule ref="SlevomatCodingStandard.Namespaces.UseFromSameNamespace.UseFromSameNamespace">
  59. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/*</exclude-pattern>
  60. </rule>
  61. <rule ref="SlevomatCodingStandard.Namespaces.UseDoesNotStartWithBackslash.UseStartsWithBackslash">
  62. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/*</exclude-pattern>
  63. </rule>
  64. <rule ref="SlevomatCodingStandard.Namespaces.UnusedUses.UnusedUse">
  65. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/*</exclude-pattern>
  66. </rule>
  67. <rule ref="SlevomatCodingStandard.Namespaces.UseSpacing.IncorrectLinesCountBetweenSameTypeOfUse">
  68. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/*</exclude-pattern>
  69. </rule>
  70. <rule ref="SlevomatCodingStandard.Namespaces.MultipleUsesPerLine.MultipleUsesPerLine">
  71. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/*</exclude-pattern>
  72. </rule>
  73. <!-- https://github.com/slevomat/coding-standard/issues/1066 -->
  74. <rule ref="SlevomatCodingStandard.PHP.UselessParentheses">
  75. <exclude-pattern>*/lib/Doctrine/Common/Annotations/DocParser.php</exclude-pattern>
  76. </rule>
  77. <rule ref="SlevomatCodingStandard.Namespaces.ReferenceUsedNamesOnly.ReferenceViaFullyQualifiedName">
  78. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/PhpParserTest.php</exclude-pattern>
  79. </rule>
  80. <!-- It is easier to understand tests that involve annotations if you can
  81. declare several dummy classes with annotations in the same file -->
  82. <rule ref="PSR1.Classes.ClassDeclaration.MultipleClasses">
  83. <exclude-pattern>*/tests/*</exclude-pattern>
  84. </rule>
  85. <rule ref="Squiz.Classes.ClassFileName.NoMatch">
  86. <exclude-pattern>*/tests/*</exclude-pattern>
  87. </rule>
  88. <rule ref="PSR1.Files.SideEffects.FoundWithSymbols">
  89. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Ticket/DCOM58Test.php</exclude-pattern>
  90. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/AbstractReaderTest.php</exclude-pattern>
  91. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/PhpParserTest.php</exclude-pattern>
  92. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/NamespaceWithClosureDeclaration.php</exclude-pattern>
  93. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithRequire.php</exclude-pattern>
  94. </rule>
  95. <!-- these classes have unused properties, and is unused in a benchmark for the parser -->
  96. <rule ref="SlevomatCodingStandard.Classes.UnusedPrivateElements.UnusedProperty">
  97. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/SingleClassLOC1000.php</exclude-pattern>
  98. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/NamespacedSingleClassLOC1000.php</exclude-pattern>
  99. </rule>
  100. <rule ref="SlevomatCodingStandard.Classes.UnusedPrivateElements.UnusedMethod">
  101. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/Controller.php</exclude-pattern>
  102. </rule>
  103. <!-- these classes do not have a namespace on purpose -->
  104. <rule ref="PSR1.Classes.ClassDeclaration.MissingNamespace">
  105. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/SingleClassLOC1000.php</exclude-pattern>
  106. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/NonNamespacedClass.php</exclude-pattern>
  107. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Ticket/DCOM58Entity.php</exclude-pattern>
  108. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassNoNamespaceNoComment.php</exclude-pattern>
  109. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/TopLevelAnnotation.php</exclude-pattern>
  110. </rule>
  111. <rule ref="SlevomatCodingStandard.TypeHints.PropertyTypeHint.MissingAnyTypeHint">
  112. <!-- there is a class property with an empty var annotation on purpose -->
  113. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/AbstractReaderTest.php</exclude-pattern>
  114. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithValidAnnotationTarget.php</exclude-pattern>
  115. </rule>
  116. <rule ref="SlevomatCodingStandard.Namespaces.DisallowGroupUse.DisallowedGroupUse">
  117. <!-- The name of the file alone explains this -->
  118. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/GroupUseStatement.php</exclude-pattern>
  119. </rule>
  120. <rule ref="SlevomatCodingStandard.TypeHints.PropertyTypeHint.MissingTraversableTypeHintSpecification">
  121. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithVarType.php</exclude-pattern>
  122. </rule>
  123. <rule ref="SlevomatCodingStandard.Classes.SuperfluousInterfaceNaming.SuperfluousSuffix">
  124. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/EmptyInterface.php</exclude-pattern>
  125. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/InterfaceThatExtendsAnInterface.php</exclude-pattern>
  126. </rule>
  127. <rule ref="SlevomatCodingStandard.Classes.SuperfluousInterfaceNaming.SuperfluousPrefix">
  128. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/InterfaceThatExtendsAnInterface.php</exclude-pattern>
  129. <exclude-pattern>*/tests/Doctrine/Tests/Common/Annotations/Fixtures/InterfaceWithConstants.php</exclude-pattern>
  130. </rule>
  131. <rule ref="Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase">
  132. <!-- Usage of mixed case constants seems pretty deliberate here -->
  133. <exclude-pattern>*/lib/Doctrine/Common/Annotations/ImplicitlyIgnoredAnnotationNames.php</exclude-pattern>
  134. </rule>
  135. </ruleset>