h4ck3r31 / psalm-issue-filter-plugin
Allows to filter/skip code issues based on code snippets within PsalmPHP
Installs: 369
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:psalm-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
section
used for logical grouping ofissue
andfilter
itemsissue
selecting issue class names,filter
items shall be applied toclass
mandatory, using Psalm's issue class name
filter
defining matching strategies concerning filteringtype
matching strategy - eitherstr_starts_with
orpreg_match
value
the corresponding payload to be matches (adjust for actual strategy)result
(defaultfalse
) which is the same as in Psalm'sBeforeAddIssueInterface::beforeAddIssue
true
stops event handling & keeps issuefalse
stops 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>