<?xml version="1.0"?> <ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/squizlabs/php_codesniffer/phpcs.xsd" > <arg name="basepath" value="."/> <arg name="extensions" value="php"/> <arg name="parallel" value="80"/> <arg name="cache" value=".phpcs-cache"/> <arg name="colors"/> <!-- Ignore warnings, show progress of the run and show sniff names --> <arg value="nps"/> <file>bin</file> <file>src</file> <file>tests</file> <rule ref="Doctrine"> <exclude name="SlevomatCodingStandard.TypeHints.DeclareStrictTypes"/> <exclude name="SlevomatCodingStandard.Classes.SuperfluousAbstractClassNaming"/> <exclude name="SlevomatCodingStandard.Classes.SuperfluousExceptionNaming"/> <exclude name="SlevomatCodingStandard.Classes.DisallowLateStaticBindingForConstants.DisallowedLateStaticBindingForConstant"/> <exclude name="SlevomatCodingStandard.ControlStructures.ControlStructureSpacing.IncorrectLinesCountAfterLastControlStructure"/> <exclude name="SlevomatCodingStandard.ControlStructures.RequireNullCoalesceEqualOperator"/> <exclude name="PSR2.Methods.MethodDeclaration.Underscore"/> <!-- https://github.com/slevomat/coding-standard/issues/867 --> <exclude name="SlevomatCodingStandard.ControlStructures.JumpStatementsSpacing.IncorrectLinesCountAfterLastControlStructure"/> <!-- See https://github.com/squizlabs/PHP_CodeSniffer/issues/2937 --> <exclude name="Squiz.Arrays.ArrayDeclaration.ValueNoNewline"/> <exclude name="Squiz.NamingConventions.ValidVariableName.PublicHasUnderscore"/> </rule> <!-- Disable the rules that will require PHP 7.4 --> <rule ref="SlevomatCodingStandard.TypeHints.PropertyTypeHint"> <properties> <property name="enableNativeTypeHint" value="false"/> </properties> </rule> <rule ref="SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint"> <exclude-pattern>*/src/*</exclude-pattern> </rule> <rule ref="SlevomatCodingStandard.TypeHints.ReturnTypeHint.MissingNativeTypeHint"> <exclude-pattern>*/src/*</exclude-pattern> </rule> <rule ref="PSR1.Classes.ClassDeclaration.MultipleClasses"> <exclude-pattern>*/tests/*</exclude-pattern> </rule> <rule ref="Squiz.Classes.ClassFileName.NoMatch"> <exclude-pattern>*/tests/*</exclude-pattern> </rule> <rule ref="Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase"> <exclude-pattern>src/Events.php</exclude-pattern> </rule> <rule ref="SlevomatCodingStandard.Classes.UnusedPrivateElements.UnusedProperty"> <exclude-pattern>tests/Tools/TestAsset/*</exclude-pattern> </rule> <!-- see https://github.com/squizlabs/PHP_CodeSniffer/issues/2099 --> <rule ref="Squiz.Commenting.FunctionComment.InvalidNoReturn"> <exclude-pattern>src/Platforms/AbstractPlatform.php</exclude-pattern> <exclude-pattern>src/Schema/AbstractSchemaManager.php</exclude-pattern> <exclude-pattern>tests/Platforms/AbstractPlatformTestCase.php</exclude-pattern> </rule> <!-- see https://github.com/squizlabs/PHP_CodeSniffer/issues/2838 --> <rule ref="Squiz.Commenting.FunctionComment.SpacingAfter"> <exclude-pattern>src/Driver/AbstractMySQLDriver.php</exclude-pattern> </rule> <rule ref="Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps"> <!-- This test contains a fixture class that should use snake case --> <exclude-pattern>tests/Functional/DataAccessTest.php</exclude-pattern> </rule> <!-- https://github.com/squizlabs/PHP_CodeSniffer/issues/2837 --> <rule ref="Squiz.NamingConventions.ValidVariableName.NotCamelCaps"> <!-- These files use the underlying driver APIs that don't comply with the coding standard phpcs wrongly complains about them, and that has been reported here: https://github.com/squizlabs/PHP_CodeSniffer/issues/2950 --> <exclude-pattern>src/Driver/IBMDB2/Connection.php</exclude-pattern> <exclude-pattern>src/Driver/Mysqli/Exception/ConnectionFailed.php</exclude-pattern> <!-- See https://github.com/squizlabs/PHP_CodeSniffer/issues/2837 --> <exclude-pattern>src/SQLParserUtils.php</exclude-pattern> <exclude-pattern>src/Tools/Dumper.php</exclude-pattern> <exclude-pattern>tests/Driver/StatementIteratorTest.php</exclude-pattern> <exclude-pattern>tests/Tools/DumperTest.php</exclude-pattern> </rule> <!-- some statement classes close cursor using an empty while-loop --> <rule ref="Generic.CodeAnalysis.EmptyStatement.DetectedWhile"> <exclude-pattern>src/Driver/SQLSrv/Result.php</exclude-pattern> </rule> <!-- See https://github.com/slevomat/coding-standard/issues/770 --> <rule ref="SlevomatCodingStandard.Namespaces.UnusedUses"> <exclude-pattern>src/Driver/ExceptionConverterDriver.php</exclude-pattern> </rule> <!-- see https://github.com/doctrine/dbal/issues/3377 --> <rule ref="SlevomatCodingStandard.Operators.DisallowEqualOperators.DisallowedNotEqualOperator"> <exclude-pattern>src/Schema/Comparator.php</exclude-pattern> </rule> <!-- The SQLSRV_* functions are defined in the upper case by the sqlsrv extension and violate the standard see https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server --> <rule ref="Squiz.PHP.LowercasePHPFunctions"> <exclude-pattern>src/Driver/SQLSrv/Statement.php</exclude-pattern> </rule> </ruleset>