parameters:
    paths:
        - "src"
        - "tests"

    sets:
        - 'psr12'
        - 'php70'
        - 'php71'
        - 'symplify'
        - 'common'
        - 'clean-code'

    skip:
        PhpCsFixer\Fixer\Operator\UnaryOperatorSpacesFixer: null
        Symplify\CodingStandard\Sniffs\ControlStructure\SprintfOverContactSniff: null
        Symplify\CodingStandard\Sniffs\CleanCode\ForbiddenStaticFunctionSniff: null
        Symplify\CodingStandard\Sniffs\CleanCode\ForbiddenReferenceSniff: null

        # mixed types
        SlevomatCodingStandard\Sniffs\TypeHints\PropertyTypeHintSniff: null

        # buggy
        Symplify\CodingStandard\Fixer\ControlStructure\PregDelimiterFixer: null

        PhpCsFixer\Fixer\PhpUnit\PhpUnitStrictFixer:
            - "tests/ORM/TimestampableTest.php"

        # weird naming
        Symplify\CodingStandard\Fixer\Naming\PropertyNameMatchingTypeFixer:
            - "src/Model/Geocodable/GeocodablePropertiesTrait.php"
            # & bug
            - "*Repository.php"

        SlevomatCodingStandard\Sniffs\Classes\UnusedPrivateElementsSniff:
            - "tests/Fixtures/Entity/SluggableWithoutRegenerateEntity.php"

    exclude_files:
        # Old bundle class name duplicate
        - "src/Bundle/DoctrineBehaviorsBundle.php"
        - "src/DoctrineBehaviorsBundle.php"

services:
    PhpCsFixer\Fixer\ClassNotation\FinalClassFixer: ~

    # see single LICENSE.txt file in the root directory
    PhpCsFixer\Fixer\Comment\HeaderCommentFixer:
        header: ''

    PhpCsFixer\Fixer\Phpdoc\GeneralPhpdocAnnotationRemoveFixer:
        annotations:
            - 'author'
            - 'package'
            - 'license'
            - 'link'
            - 'abstract'

    # every property should have @var annotation
    # SlevomatCodingStandard\Sniffs\TypeHints\PropertyTypeHintSniff: ~
