parameters: indentation: spaces file_extensions: - php exclude_files: - fixtures/* - fixtures*/* - temp/* - tmp/* services: # Checkers bellow aim on 1:1 copy of https://nette.org/en/coding-standard # General rules - https://nette.org/en/coding-standard#toc-general-rules # use tabs over spaces # PHP_CodeSniffer\Standards\Generic\Sniffs\WhiteSpace\DisallowSpaceIndentSniff: ~ # PHP code must use only UTF-8 without BOM PhpCsFixer\Fixer\Basic\EncodingFixer: ~ # tag must be omitted from files containing only PHP. PhpCsFixer\Fixer\PhpTag\NoClosingTagFixer: ~ # There must not be trailing whitespace at the end of lines. PhpCsFixer\Fixer\Whitespace\NoTrailingWhitespaceFixer: ~ # ...and at the end of blank lines. PhpCsFixer\Fixer\Whitespace\NoWhitespaceInBlankLineFixer: ~ # All files must end with a single blank line. PhpCsFixer\Fixer\Whitespace\SingleBlankLineAtEofFixer: ~ # File name should match class name if possible. PhpCsFixer\Fixer\Basic\Psr4Fixer: ~ # Enforces using shorthand scalar typehint variants in phpDocs: `int` instead of `integer` and `bool` instead of `boolean` SlevomatCodingStandard\Sniffs\TypeHints\LongTypeHintsSniff: ~ # File Header - https://nette.org/en/coding-standard#toc-file-header # empty line before namespace PhpCsFixer\Fixer\NamespaceNotation\SingleBlankLineBeforeNamespaceFixer: ~ # 1 Use statement per line PhpCsFixer\Fixer\Import\SingleImportPerStatementFixer: ~ # Use statements are alphabetically ordered PhpCsFixer\Fixer\Import\OrderedImportsFixer: ~ # disallow group use declarations use FooLibrary\Bar\Baz\{ ClassA, ClassB, ClassC, ClassD as Fizbo } SlevomatCodingStandard\Sniffs\Namespaces\DisallowGroupUseSniff: ~ # Disallows leading backslash in use statement: use \Foo\Bar; SlevomatCodingStandard\Sniffs\Namespaces\UseDoesNotStartWithBackslashSniff: ~ # Looks for unused imports from other namespaces. Nette\CodingStandard\Sniffs\Namespaces\UnusedUsesSniff: searchAnnotations: yes ignoredAnnotationNames: [ '@testCase' ] ignoredAnnotations: [ '@internal' ] # Language Construct (should be placed before some other fixers) # Functions should be used with `$strict` param set to `true` PhpCsFixer\Fixer\Strict\StrictParamFixer: ~ # replaces is_null(parameter) expression with `null === parameter`. PhpCsFixer\Fixer\LanguageConstruct\IsNullFixer: use_yoda_style: true # Calling `unset` on multiple items should be done in one call. PhpCsFixer\Fixer\LanguageConstruct\CombineConsecutiveUnsetsFixer: ~ # Replace all `<>` with `!=`. PhpCsFixer\Fixer\Operator\StandardizeNotEqualsFixer: ~ # Include/Require and file path should be divided with a single space. File path should not be placed under brackets. PhpCsFixer\Fixer\ControlStructure\IncludeFixer: ~ # Requires short ternary operator ?: when possible SlevomatCodingStandard\Sniffs\ControlStructures\RequireShortTernaryOperatorSniff: ~ # Arrays - https://nette.org/en/coding-standard#toc-arrays # use short array fixes PhpCsFixer\Fixer\ArrayNotation\ArraySyntaxFixer: syntax: short # use trailing command in last array element PhpCsFixer\Fixer\ArrayNotation\TrailingCommaInMultilineArrayFixer: ~ # PHP single-line arrays should not have trailing comma. # PhpCsFixer\Fixer\ArrayNotation\NoTrailingCommaInSinglelineArrayFixer: ~ # In array declaration, there MUST NOT be a whitespace before each comma. PhpCsFixer\Fixer\ArrayNotation\NoWhitespaceBeforeCommaInArrayFixer: ~ # Arrays should be formatted like function/method arguments, without leading or trailing single line space. PhpCsFixer\Fixer\ArrayNotation\TrimArraySpacesFixer: ~ # In array declaration, there MUST be a whitespace after each comma. PhpCsFixer\Fixer\ArrayNotation\WhitespaceAfterCommaInArrayFixer: ~ # Strings # Convert `heredoc` to `nowdoc` where possible. PhpCsFixer\Fixer\StringNotation\HeredocToNowdocFixer: ~ # Convert double quotes to single quotes for simple strings. PhpCsFixer\Fixer\StringNotation\SingleQuoteFixer: ~ # Keywords and True/False/Null - https://nette.org/en/coding-standard#toc-keywords-and-true-false-null # PHP keywords must be in lower case PhpCsFixer\Fixer\Casing\LowercaseKeywordsFixer: ~ # The PHP constants `true`, `false`, and `null` MUST be in lower case PhpCsFixer\Fixer\Casing\LowercaseConstantsFixer: ~ # Method and Functions Calls - https://nette.org/en/coding-standard#toc-method-and-function-calls # Function defined by PHP should be called using the correct casing PhpCsFixer\Fixer\Casing\NativeFunctionCasingFixer: ~ # In the argument list, there must be one space after each comma, and there must no be a space before each comma PhpCsFixer\Fixer\FunctionNotation\MethodArgumentSpaceFixer: ~ # This sniff checks that there are two blank lines between functions declarations and single between signatures. #Nette\CodingStandard\Sniffs\WhiteSpace\FunctionSpacingSniff: ~ # Classes - https://nette.org/en/coding-standard#toc-classes # Inside a classy element "self" should be preferred to the class name itself. PhpCsFixer\Fixer\ClassNotation\SelfAccessorFixer: ~ # class element order: constants, properties, from public to private PhpCsFixer\Fixer\ClassNotation\OrderedClassElementsFixer: order: - use_trait - constant - constant_public - constant_protected - constant_private - property_public - property_protected - property_private # Constants - https://nette.org/en/coding-standard#toc-constants # constant names are CAPITALIZED (manuall fixing only :() PHP_CodeSniffer\Standards\Generic\Sniffs\NamingConventions\UpperCaseConstantNameSniff: ~ # Class Properties - https://nette.org/en/coding-standard#toc-class-properties # There MUST NOT be more than one property declared per statement. PhpCsFixer\Fixer\ClassNotation\SingleClassElementPerStatementFixer: elements: [ 'property' ] # Methods - https://nette.org/en/coding-standard#toc-methods # They must be declared in camelCase. PHP_CodeSniffer\Standards\PSR1\Sniffs\Methods\CamelCapsMethodNameSniff: ~ # Checks that there's a single space between a typehint and a parameter name and no whitespace between a nullability symbol and a typehint SlevomatCodingStandard\Sniffs\TypeHints\ParameterTypeHintSpacingSniff: ~ # Spaces should be properly placed in a function declaration. PhpCsFixer\Fixer\FunctionNotation\FunctionDeclarationFixer: ~ # In function arguments there must not be arguments with default values before non-default ones. PhpCsFixer\Fixer\FunctionNotation\NoUnreachableDefaultArgumentValueFixer: ~ # Constans, Class Properties, Methods # Constants and Properties should be separated by 1 blank line #PhpCsFixer\Fixer\ClassNotation\ClassAttributesSeparationFixer: # elements: [const, property] # Last property and 1st method should be separated by 2 spaces Nette\CodingStandard\Fixer\ClassNotation\LastPropertyAndFirstMethodSeparationFixer: space_count: 2 # Control Statements - https://nette.org/en/coding-standard#toc-control-statements # The keyword `elseif` should be used instead of `else if` so that all control keywords look like single words. PhpCsFixer\Fixer\ControlStructure\ElseifFixer: ~ # Remove useless semicolon statements. PhpCsFixer\Fixer\Semicolon\NoEmptyStatementFixer: ~ # Remove trailing commas in list() calls. PhpCsFixer\Fixer\ControlStructure\NoTrailingCommaInListCallFixer: ~ # Removes unneeded parentheses around control statements. PhpCsFixer\Fixer\ControlStructure\NoUnneededControlParenthesesFixer: ~ # A case should be followed by a colon and not a semicolon. PhpCsFixer\Fixer\ControlStructure\SwitchCaseSemicolonToColonFixer: ~ # The structure body must be indented once. # The closing brace must be on the next line after the body. # There should not be more than one statement per line. #Nette\CodingStandard\Fixer\Basic\BracesFixer: # allow_single_line_closure: true # changes if (1 === $cond) to if ($cond === 1) #SlevomatCodingStandard\Sniffs\ControlStructures\DisallowYodaComparisonSniff: ~ # finds unreachable catch blocks: SlevomatCodingStandard\Sniffs\Exceptions\DeadCatchSniff: ~ # Casting # A single space or none should be between cast and variable (int) $val PhpCsFixer\Fixer\CastNotation\CastSpacesFixer: ~ # Cast should be written in lower case. PhpCsFixer\Fixer\CastNotation\LowercaseCastFixer: ~ # Replaces `intval`, `floatval`, `doubleval`, `strval` and `boolval` function calls with according type casting operator PhpCsFixer\Fixer\CastNotation\ModernizeTypesCastingFixer: ~ # Short cast `bool` using double exclamation mark should not be used PhpCsFixer\Fixer\CastNotation\NoShortBoolCastFixer: ~ # Cast `(boolean)` and `(integer)` should be written as `(bool)` and `(int)`, `(double)` and `(real)` as `(float)` PhpCsFixer\Fixer\CastNotation\ShortScalarCastFixer: ~ # Language Whitespace # Binary operators should be surrounded by at least one space. DO NOT USE #PhpCsFixer\Fixer\Operator\BinaryOperatorSpacesFixer: ~ # Unary operators should be placed adjacent to their operands. PhpCsFixer\Fixer\Operator\UnaryOperatorSpacesFixer: ~ # No space after the opening parenthesis and before the closing parenthesis PhpCsFixer\Fixer\Whitespace\NoSpacesInsideParenthesisFixer: ~ # There MUST NOT be spaces around offset braces $a[0] PhpCsFixer\Fixer\Whitespace\NoSpacesAroundOffsetFixer: ~ # There should not be space before or after object `T_OBJECT_OPERATOR` `->`. PhpCsFixer\Fixer\Operator\ObjectOperatorWithoutWhitespaceFixer: ~ # Standardize spaces around ternary operator. PhpCsFixer\Fixer\Operator\TernaryOperatorSpacesFixer: ~ # Concatenation $a . $b should be spaced according configuration PhpCsFixer\Fixer\Operator\ConcatSpaceFixer: spacing: one # Removes extra spaces between colon and case value. PhpCsFixer\Fixer\ControlStructure\SwitchCaseSpaceFixer: ~ # Comments # Docblocks should have the same indentation as the documented subject. PhpCsFixer\Fixer\Phpdoc\PhpdocIndentFixer: ~ # There should not be any empty comments. PhpCsFixer\Fixer\Comment\NoEmptyCommentFixer: ~ # There should not be empty PHPDoc blocks. #PhpCsFixer\Fixer\Phpdoc\NoEmptyPhpdocFixer: ~ # Phpdocs should start and end with content, excluding the very first and last line of the docblocks. PhpCsFixer\Fixer\Phpdoc\PhpdocTrimFixer: ~ # Single-line comments comments with only one line of actual content should use the `//` syntax. PhpCsFixer\Fixer\Comment\SingleLineCommentStyleFixer: comment_types: [ 'hash' ] # Require comments with single-line content to be written as one-liners SlevomatCodingStandard\Sniffs\Commenting\RequireOneLinePropertyDocCommentSniff: ~ # Properties MUST not be explicitly initialized with `null`. #PhpCsFixer\Fixer\ClassNotation\NoNullPropertyInitializationFixer: ~ PhpCsFixer\Fixer\ControlStructure\NoBreakCommentFixer: comment_text: 'break omitted' # declare(strict_types=1); PhpCsFixer\Fixer\Strict\DeclareStrictTypesFixer: ~ # Enforces consistent formatting of return typehints: function foo(): ?int SlevomatCodingStandard\Sniffs\TypeHints\ReturnTypeHintSpacingSniff: ~ # Use `null` coalescing operator `??` where possible. PhpCsFixer\Fixer\Operator\TernaryToNullCoalescingFixer: ~ Nette\CodingStandard\Fixer\ClassNotation\ClassAndTraitVisibilityRequiredFixer: elements: [ 'const', 'property', 'method' ] # short list() syntax [] PhpCsFixer\Fixer\ListNotation\ListSyntaxFixer: syntax: short