itinerisltd/itineris-wp-coding-standards

PHP_CodeSniffer rules for Itineris WordPress projects

Installs: 59 212

Dependents: 25

Suggesters: 0

Security: 0

Stars: 2

Watchers: 11

Forks: 1

Open Issues: 8

Type:phpcodesniffer-standard

1.0.0 2023-04-17 13:17 UTC

README

Packagist Version PHP from Packagist Packagist Downloads GitHub License Hire Itineris

Goal

Itineris WP Coding Standards is a project with rulesets for code style and quality tools to be used in Itineris WordPress projects.

It is a mix of PSR-1, PSR-2, PSR-4, PSR-12, Slevomat and WordPress coding standards.

Whenever there's a conflict between PSR and WPCS, always prefer PSR.

Currently, it works for WordPress plugins. Using it on Bedrock or Sage requires some tweaking.

Installation

composer require --dev itinerisltd/itineris-wp-coding-standards

Usage

First, create phpcs.xml on project root:

<?xml version="1.0"?>
<ruleset name="Plugin">
    <!-- Check all files under project root -->
    <file>./</file>

    <!-- Show colors in console -->
    <arg value="-colors"/>

    <!-- Show progress and sniff codes in all reports; Show progress of the run -->
    <arg value="sp"/>

    <!-- Scan only PHP files -->
    <arg name="extensions" value="php"/>

    <!-- Use Itineris WP Coding Standards -->
    <rule ref="Itineris"/>

    <!-- TODO: Change everything below! -->
    <!-- TODO: Exclude specific rules if necessary -->

    <!-- TODO: Exclude some files -->
    <exclude-pattern>/my-awesome-plugin.php</exclude-pattern>
    <exclude-pattern>/tests/*</exclude-pattern>
    <exclude-pattern>/vendor/*</exclude-pattern>

    <!-- TODO: Define minimum supported WordPress version -->
    <config name="minimum_supported_wp_version" value="6.2"/>

    <!-- TODO: Define expected text domains -->
    <rule ref="WordPress.WP.I18n">
        <properties>
            <property name="text_domain" type="array">
                <element value="my-plugin"/>
                <element value="my-theme"/>
                <element value="woocommerce"/>
                <element value="sage"/>
            </property>
        </properties>
    </rule>
</ruleset>

Then, define composer scripts in composer.json:

{
  "scripts": {
    "style:check": "phpcs",
    "style:fix": "phpcbf"
  }
}

Run the commands:

composer style:check
composer style:fix

Required Readings

FAQs

Will you add support for older PHP versions?

Never! This plugin will only work on actively supported PHP versions.

Don't use it on end of life or security fixes only PHP versions.

It looks awesome. Where can I find some more goodies like this?

This isn't on wp.org. Where can I give a ⭐⭐⭐⭐⭐ review?

Thanks! Glad you like it. It's important to let my boss knows somebody is using this project. Please consider:

Feedback

Please provide feedback! We want to make this library useful in as many projects as possible. Please submit an issue and point out what you do and don't like, or fork the project and make suggestions. No issue is too small.

Security

If you discover any security related issues, please email dev@itineris.co.uk instead of using the issue tracker.

Credits

Itineris WP Coding Standards is a Itineris Limited project created by Tang Rufus.

Full list of contributors can be found here.

License

Itineris WP Coding Standards is released under the MIT License.