# https://phpstan.org/config-reference
parameters:
    level: 6
    treatPhpDocTypesAsCertain: false
    paths:
        - src

    # on ignore les erreurs qui proviennent d'un importe d'un attribut PhpStorm
    # on ignore les erreurs qui imposent d'indiquer le type d'un iterable dans la phpDoc (cf: https://phpstan.org/blog/solving-phpstan-no-value-type-specified-in-iterable-type)
    ignoreErrors :
        - '#Attribute class JetBrains\\PhpStorm\\[a-zA-Z]+ does not exist\.#'
        - identifier: 'missingType.generics'
        - '#Class App\\Repository\\.+Repository has PHPDoc tag @method for method .+\(\) parameter .* with no value type specified in iterable type array\.$#'
#        - '#Property .+::\$id \(int\|null\) is never assigned int so it can be removed from the property type\.$#'
        - '#Constructor of ApiPlatform\\Metadata\\[a-zA-Z]+ is invoked with named argument#'

    ergebnis:
        # TODO: simplify by using allRules: false (https://github.com/ergebnis/phpstan-rules?tab=readme-ov-file#enabling-rules-one-by-one)
        final:
            enabled: false
        noExtends:
            enabled: false
        noNullableReturnTypeDeclaration:
            enabled: false
        noParameterWithNullableTypeDeclaration:
            enabled: false
        noParameterWithNullDefaultValue:
            enabled: false
        noCompact:
            enabled: false
        noIsset:
            enabled: false
        finalInAbstractClass:
            enabled: false
        noConstructorParameterWithDefaultValue:
            enabled: false
        noParameterWithContainerTypeDeclaration:
            enabled: false
        noSwitch:
            enabled: false
        privateInFinalClass:
            enabled: false
