includes:
  - phpstan-baseline.neon
  - .Build/vendor/spaze/phpstan-disallowed-calls/disallowed-dangerous-calls.neon
  - .Build/vendor/spaze/phpstan-disallowed-calls/disallowed-execution-calls.neon
  - .Build/vendor/spaze/phpstan-disallowed-calls/disallowed-insecure-calls.neon
  - .Build/vendor/spaze/phpstan-disallowed-calls/disallowed-loose-calls.neon

parameters:
  parallel:
    # Don't be overly greedy on machines with more CPU's to be a good neighbor especially on CI
    maximumNumberOfProcesses: 5

  level: 9

  paths:
    - Classes
    - Configuration
    - Tests
    - ext_localconf.php

  # Allow instanceof checks, particularly in tests
  checkAlwaysTrueCheckTypeFunctionCall: false

  type_coverage:
    return_type: 100
    param_type: 100
    property_type: 95

  cognitive_complexity:
    class: 10
    function: 5

  disallowedFunctionCalls:
    -
      function:
        - 'var_dump()'
        - 'xdebug_break()'
        - 'debug()'
      message: 'Use logging instead or remove if it was for debugging purposes.'
    -
      function: 'header()'
      message: 'Use PSR-7 API instead'
  disallowedStaticCalls:
    -
      method:
        - 'TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump()'
        - 'TYPO3\CMS\Core\Utility\DebugUtility::debug()'
      message: 'Use logging instead or remove if it was for debugging purposes.'
  disallowedSuperglobals:
    -
      superglobal:
        - '$_GET'
        - '$_POST'
        - '$_FILES'
        - '$_SERVER'
      message: 'Use PSR-7 API instead'
  ignoreErrors:
    -
      message: '#Out of 1 possible constant types#'
      path: Tests/Functional/Command/CreateTestDataCommandTest.php