Allows to filter/skip code issues based on code snippets within PsalmPHP

v0.3.0 2022-09-10 11:41 UTC

This package is auto-updated.

Last update: 2024-05-10 15:31:29 UTC


Allows to filter/skip code issues based on code snippets. The configuration example below skips PossiblyUndefinedStringArrayOffset or PossiblyUndefinedIntArrayOffset that might occur in project scenarios like:

class Subject
     * @return SomeService
    protected function getSomeService()
        // there's no guarantee this service instance is given
        // however, it particular frameworks it might be like that
        // -> this plugin helps to skip these boilerplate issues
        return $GLOBALS['SOME_SERVICE'];

Configuration Directives

  • section used for logical grouping of issue and filter items
  • issue selecting issue class names, filter items shall be applied to
    • class mandatory, using Psalm's issue class name
  • filter defining matching strategies concerning filtering
    • type matching strategy - either str_starts_with or preg_match
    • value the corresponding payload to be matches (adjust for actual strategy)
    • result (default false) which is the same as in Psalm's BeforeAddIssueInterface::beforeAddIssue
      • true stops event handling & keeps issue
      • false stops event handling & ignores issue


in plugin section of psalm.xml

    <!-- ... -->
        <!-- ... -->
        <pluginClass class="H4ck3r31\PsalmIssueFilterPlugin\Plugin">
                <issue class="Psalm\Issue\PossiblyUndefinedStringArrayOffset" />
                <issue class="Psalm\Issue\PossiblyUndefinedIntArrayOffset" />

                <filter type="str_starts_with" value="$GLOBALS" result="false" />
                <!-- same impact, using `preg_match` instead of `str_starts_with` -->
                <filter type="preg_match" value="/^\$GLOBALS/" result="true" />
                <!-- ... -->
    <!-- ... -->