parameters: scanFiles: - ../_ide_helper paths: - ../app - ../database - ../routes - ../config - ../bootstrap/app.php universalObjectCratesClasses: - Illuminate\Database\Eloquent\Model # TODO: slowly remove these parameters and fix the issues found. reportUnmatchedIgnoredErrors: false ignoreErrors: # TODO: slowly remove these exceptions and fix the issues found. - '#Dynamic call to static method#' # all the Laravel ORM things depend on this. - identifier: varTag.nativeType - identifier: varTag.type - identifier: missingType.iterableValue # not interesting enough to fix. - identifier: missingType.generics # not interesting enough to fix. # phpstan can't handle this so we ignore them. - '#Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany::before#' - '#Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany::after#' - '#Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany::withTrashed#' - '#Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany::accountTypeIn#' - '#Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\BelongsTo::withTrashed#' # - '#Control structures using switch should not be used.#' # switch is fine in some cases. # - '#with no value type specified in iterable type array#' # remove this rule when all other issues are solved. # - '#has no value type specified in iterable type array#' # remove this rule when all other issues are solved. # - '#is not allowed to extend#' # - '#does not specify its types#' # - '#switch is forbidden to use#' # - '#is neither abstract nor final#' # - '#on left side of \?\?\= always exists and is not nullable#' # - '#has a nullable return type declaration#' # perhaps throw errors instead? # - '#with a nullable type declaration#' # decide what action should be if param is null. # - '#with null as default value#' # - # message: '#Constructor in [a-zA-Z0-9\\_]+ has parameter \$[a-zA-Z0-9\\_]+ with default value#' # paths: # - ../app/Exceptions/IntervalException.php # - ../app/Support/Navigation.php # - # message: '#but containers should not be injected#' # paths: # - ../app/Support/Authentication/RemoteUserGuard.php # - # message: '#Function compact\(\) should not be used#' # too useful in template rendering. # paths: # - ../app/Generator/Report/Account/MonthReportGenerator.php # - ../app/Generator/Report/Audit/MonthReportGenerator.php # - ../app/Generator/Report/Budget/MonthReportGenerator.php # - ../app/Generator/Report/Category/MonthReportGenerator.php # - ../app/Generator/Report/Standard/MonthReportGenerator.php # - ../app/Generator/Report/Standard/MultiYearReportGenerator.php # - ../app/Generator/Report/Standard/YearReportGenerator.php # - ../app/Generator/Report/Tag/MonthReportGenerator.php # - ../app/Http/Controllers/Account/*.php # - ../app/Http/Controllers/Admin/*.php # - ../app/Http/Controllers/*.php # - ../app/Support/ExpandedForm.php # - ../app/Support/Form/AccountForm.php # - ../app/Support/Form/CurrencyForm.php # - ../app/Support/Form/FormSupport.php # - # message: '#Either catch a more specific exception#' # paths: # - ../app/Support/Form/FormSupport.php # The level 8 is the highest level. original was 5 # 7 is more than enough, higher just leaves NULL things. level: 6