h4ck3r31 / psalm-issue-filter-plugin
Allows to filter/skip code issues based on code snippets within PsalmPHP
Installs: 490
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:psalm-plugin
pkg:composer/h4ck3r31/psalm-issue-filter-plugin
Requires
- ext-simplexml: *
- vimeo/psalm: dev-master
README
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
sectionused for logical grouping ofissueandfilteritemsissueselecting issue class names,filteritems shall be applied toclassmandatory, using Psalm's issue class name
filterdefining matching strategies concerning filteringtypematching strategy - eitherstr_starts_withorpreg_matchvaluethe corresponding payload to be matches (adjust for actual strategy)result(defaultfalse) which is the same as in Psalm'sBeforeAddIssueInterface::beforeAddIssuetruestops event handling & keeps issuefalsestops event handling & ignores issue
Example
in plugin section of psalm.xml
<psalm> <!-- ... --> <plugins> <!-- ... --> <pluginClass class="H4ck3r31\PsalmIssueFilterPlugin\Plugin"> <section> <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" /> </section> <section> <!-- ... --> </section> </pluginClass> </plugins> <!-- ... --> </psalm>