Files
monolog-gdpr-filter/psalm.xml
Ismo Vuorinen 47564c5cd6 feat!: upgrade min. php version to 8.4 (#86)
* feat: upgrade min php to 7.4, upgrade packages

* chore: update ci/cd, docs, supporting config to php 8.4

* chore: update rest of the docs, supporting config to php 8.4
2026-02-01 10:20:40 +02:00

146 lines
4.6 KiB
XML

<?xml version="1.0" ?>
<psalm
errorLevel="5"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="https://getpsalm.org/schema/config"
xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
phpVersion="8.4"
noCache="false"
findUnusedPsalmSuppress="true"
skipChecksOnUnresolvableIncludes="true"
allowPhpStormGenerics="true"
allowStringToStandInForClass="true"
memoizeMethodCallResults="true"
hoistConstants="true"
addParamTypehint="false"
checkForThrowsDocblock="false"
checkForThrowsInGlobalScope="false"
sealAllMethods="false"
sealAllProperties="false"
>
<projectFiles>
<directory name="src" />
<directory name="examples" />
<directory name="config" />
<directory name="tests" />
<ignoreFiles>
<directory name="vendor" />
<directory name="src/Laravel" />
</ignoreFiles>
</projectFiles>
<plugins>
<pluginClass class="Psalm\PhpUnitPlugin\Plugin" />
</plugins>
<issueHandlers>
<!-- Laravel function compatibility -->
<UndefinedFunction>
<errorLevel type="suppress">
<referencedFunction name="config" />
<referencedFunction name="app" />
<referencedFunction name="now" />
<referencedFunction name="config_path" />
<referencedFunction name="env" />
</errorLevel>
</UndefinedFunction>
<!-- Complex return type issues in GdprProcessor -->
<InvalidReturnType>
<errorLevel type="suppress">
<file name="src/GdprProcessor.php" />
</errorLevel>
</InvalidReturnType>
<!-- Override attributes - suppress for now to avoid breaking changes -->
<MissingOverrideAttribute errorLevel="suppress" />
<!-- Class finalization - suppress to avoid API breaking changes -->
<ClassMustBeFinal errorLevel="suppress" />
<!-- Mixed types - necessary for flexible APIs -->
<MixedArgument errorLevel="suppress" />
<MixedAssignment errorLevel="suppress" />
<MixedMethodCall errorLevel="suppress" />
<MixedPropertyFetch errorLevel="suppress" />
<MixedArrayAccess errorLevel="suppress" />
<!-- Missing type annotations - backward compatibility -->
<MissingReturnType errorLevel="suppress" />
<MissingParamType errorLevel="suppress" />
<MissingPropertyType errorLevel="suppress" />
<!-- Prevent Psalm from adding complex nested return types -->
<MismatchingDocblockReturnType errorLevel="suppress" />
<MoreSpecificReturnType errorLevel="suppress" />
<LessSpecificReturnStatement errorLevel="suppress" />
<!-- Test-specific suppressions -->
<!-- Redundant test assertions - provide defensive runtime validation -->
<RedundantCondition>
<errorLevel type="suppress">
<directory name="tests" />
</errorLevel>
</RedundantCondition>
<RedundantConditionGivenDocblockType>
<errorLevel type="suppress">
<directory name="tests" />
</errorLevel>
</RedundantConditionGivenDocblockType>
<ArgumentTypeCoercion>
<errorLevel type="suppress">
<directory name="tests" />
</errorLevel>
</ArgumentTypeCoercion>
<!-- Test validation issues -->
<InvalidArgument>
<errorLevel type="suppress">
<directory name="tests" />
</errorLevel>
</InvalidArgument>
<!-- Test helper methods in anonymous classes -->
<UndefinedMethod>
<errorLevel type="suppress">
<file name="tests/Strategies/AbstractMaskingStrategyTest.php" />
</errorLevel>
</UndefinedMethod>
<!-- Test function calls -->
<UndefinedFunction>
<errorLevel type="suppress">
<directory name="tests" />
</errorLevel>
</UndefinedFunction>
<!-- Test utility calls -->
<UnusedFunctionCall>
<errorLevel type="suppress">
<directory name="tests" />
</errorLevel>
</UnusedFunctionCall>
<!-- Laravel-specific patterns -->
<!-- (Laravel directory is excluded from scanning) -->
<!-- Intentional design choices -->
<PropertyNotSetInConstructor errorLevel="suppress" />
<PossiblyUnusedMethod errorLevel="suppress" />
<PossiblyUnusedProperty errorLevel="suppress" />
<!-- Array access patterns for configuration -->
<PossiblyUndefinedArrayOffset errorLevel="suppress" />
<PossiblyInvalidArrayOffset errorLevel="suppress" />
<!-- Closure patterns in callbacks -->
<UnusedClosureParam errorLevel="suppress" />
<MissingClosureParamType errorLevel="suppress" />
<MissingClosureReturnType errorLevel="suppress" />
<!-- String manipulation patterns -->
<PossiblyInvalidCast errorLevel="suppress" />
</issueHandlers>
</psalm>