includes:
	- phpstan-baseline-standard.neon
	- phpstan-baseline-by-php-version.php

parameters:
    level: max

    checkFunctionNameCase: true
    checkInternalClassCaseSensitivity: true
    treatPhpDocTypesAsCertain: false

    paths:
        - application
        - library/Icinga
        - modules/doc/application
        - modules/migrate/application
        - modules/monitoring/application
        - modules/setup/application
        - modules/test/application
        - modules/translation/application
        - modules/doc/library
        - modules/migrate/library
        - modules/monitoring/library
        - modules/setup/library
        - modules/translation/library

    ignoreErrors:
        - '#Unsafe usage of new static\(\)#'
        - '#. but return statement is missing#'
        - '#Cannot call method importNode\(\) on DOMDocument\|null.#'

    scanDirectories:
        - /usr/share/icinga-php
        - /usr/share/icingaweb2-modules

    excludePaths:
        - library/Icinga/Test

    universalObjectCratesClasses:
        - ipl\Orm\Model
        - Icinga\Data\ConfigObject
        - Icinga\Web\View
        - Icinga\Module\Monitoring\Object\MonitoredObject
        - Icinga\Module\Monitoring\DataView\DataView
        - Icinga\Web\Session\SessionNamespace
        - Icinga\User\Preferences
