onepix/wp-static-analysis

Psalm, PHPCS and Rector configs for use in WP

v0.7.1 2025-02-24 13:05 UTC

This package is auto-updated.

Last update: 2025-02-24 13:06:45 UTC


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 custom ruleset.xml file relative to the project

If --ruleset is not present, it checks the files in order of priority:

  1. .config/.phpcs.xml
  2. .config/phpcs.xml
  3. .config/.phpcs.xml.dist
  4. .config/phpcs.xml.dist
  5. WpOnepixStandard is 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 custom psalm.xml file relative to the project

If --config is not present, it checks the files in order of priority:

  1. .config/psalm.xml
  2. .config/psalm.xml.dist
  3. Default config from this package config/psalm.xml

Example

vendor/bin/wp-static-analysis psalm --config=./phpcs/example.xml -- --help