itinerisltd / itineris-wp-coding-standards
PHP_CodeSniffer rules for Itineris WordPress projects
Installs: 58 494
Dependents: 25
Suggesters: 0
Security: 0
Stars: 2
Watchers: 11
Forks: 1
Open Issues: 8
Type:phpcodesniffer-standard
Requires
- php: ^8.1
- dealerdirect/phpcodesniffer-composer-installer: ^1.0
- slevomat/coding-standard: ^8.8
- wp-coding-standards/wpcs: ^2.3
Requires (Dev)
- roave/security-advisories: dev-master
README
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
- Whitelisting code which flags errors
- Flagged superglobal usage in WordPress VIP
- Fixing errors for input data
- Sanitizing array input data
- Customizable sniff properties
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?
- Articles on Itineris' blog
- More projects on Itineris' GitHub profile
- More plugins on Itineris and TangRufus wp.org profiles
- Follow @itineris_ltd and @TangRufus on Twitter
- Hire Itineris to build your next awesome site
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:
- tweet something good with mentioning @itineris_ltd and @TangRufus
- ⭐ star this Github repo
- 👀 watch this Github repo
- write blog posts
- submit pull requests
- hire Itineris
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.