onepix / wp-static-analysis
Psalm, PHPCS and Rector configs for use in WP
v0.7.2
2025-05-15 23:32 UTC
Requires
- php: ^8.1
- humanmade/psalm-plugin-wordpress: ^3
- onepix/wordpress-stubs: *
- onepix/wp-coding-standards: ^1
- rector/rector: ^2
- symfony/console: ^6
- symfony/polyfill-php83: *
- symfony/process: ^6
- vimeo/psalm: ^5 || ^6
Requires (Dev)
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: ^10 || ^11
- psalm/plugin-phpunit: *
README
TODO
- Psalm plugin for autoregistration of installed
onepix/*-stubs - Rector CLI
Install
composer require --dev onepix/wp-static-analysis
Required
- PHP 8.1+
CLI
PHP_CodeSniffer
vendor/bin/wp-static-analysis phpcs [OPTIONS] -- [<PHPCS-ARGS>...]
vendor/bin/wp-static-analysis phpcbf [OPTIONS] -- [<PHPCS-ARGS>...]
[PHPCS-ARGS]: Arguments from PHP_CodeSniffer
[OPTIONS]:
--ruleset- Path to the customruleset.xmlfile relative to the project
If --ruleset is not present, it checks the files in order of priority:
.config/.phpcs.xml.config/phpcs.xml.config/.phpcs.xml.dist.config/phpcs.xml.distWpOnepixStandardis automatically applied
Example
vendor/bin/wp-static-analysis phpcs --ruleset=./phpcs/example.xml -- --colors
Overriding rules
.config/phpcs.xml
<?xml version="1.0"?> <ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Onepix WP Standard Override" namespace="WpOnepixStandardOverride" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/squizlabs/PHP_CodeSniffer/master/phpcs.xsd"> <rule ref="WpOnepixStandard"> </rule> <!-- Arguments --> <arg name="extensions" value="php" /> <arg name="report" value="summary" /> <arg name="colors" /> <arg name="cache" /> <arg value="sp" /> </ruleset>
Psalm
vendor/bin/wp-static-analysis psalm [OPTIONS] -- [<PSALM-ARGS>...]
[PSALM-ARGS]: Arguments from Psalm
[OPTIONS]:
--config- Path to the custompsalm.xmlfile relative to the project
If --config is not present, it checks the files in order of priority:
.config/psalm.xml.config/psalm.xml.dist- Default config from this package
config/psalm.xml
Example
vendor/bin/wp-static-analysis psalm --config=./phpcs/example.xml -- --help