- Goal
- Installation
- Usage
- PrettyCI
- Required Readings
- FAQs
- Feedback
- Change Log
- Security
- Credits
- License
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 with PSR-1, PSR-2, PSR-4, WordPress Coding Standards and Automattic/VIP-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.
$ composer require --dev itinerisltd/itineris-wp-coding-standards
First, create phpcs.xml
on project root:
<?xml version="1.0"?>
<ruleset name="MyAwesomePlugin">
<!-- Check all files under project root -->
<file>./</file>
<!-- Show sniff codes in all reports -->
<arg value="s"/>
<!-- Install custom rulesets -->
<config name="installed_paths" value="vendor/wp-coding-standards/wpcs,vendor/automattic/vipwpcs,vendor/itinerisltd/itineris-wp-coding-standards"/>
<!-- 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="4.9"/>
<!-- TODO: Define expected text domains -->
<rule ref="WordPress.WP.I18n">
<properties>
<property name="text_domain" type="array" value="wc-worldpay,woocommerce"/>
</properties>
</rule>
</ruleset>
Then, define a composer script:
# composer.json
{
"scripts": {
"check-style": "phpcs --colors -p"
}
}
Run the command:
composer check-style
Create .prettyci.composer.json
at project root:
# .prettyci.composer.json
{
"require-dev": {
"itinerisltd/itineris-wp-coding-standards": "^999.999.999"
}
}
To make PrettyCI works, ensure:
- you created
.prettyci.composer.json
at project root - you created
phpcs.xml
at project root - versions in
.prettyci.composer.json
are the same as incomposer.json
- Whitelisting code which flags errors
- Flagged superglobal usage in WordPress VIP
- Fixing errors for input data
- Sanitizing array input data
- Customizable sniff properties
Never! This plugin will only works on actively supported PHP versions.
Don't use it on end of life or security fixes only PHP versions.
- Articles on Itineris' blog
- More projects on Itineris' GitHub profile
- Follow @itineris_ltd and @TangRufus on Twitter
- Hire Itineris to build your next awesome site
Thanks! Glad you like it. It's important to make my boss know somebody is using this project. Instead of giving reviews on wp.org, consider:
- tweet something good with mentioning @itineris_ltd
- star this Github repo
- watch this Github repo
- write blog posts
- submit pull requests
- hire Itineris
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.
Please see CHANGELOG for more information on what has changed recently.
If you discover any security related issues, please email hello@itineris.co.uk instead of using the issue tracker.
Itineris WP Coding Standards is a Itineris Limited project created by Tang Rufus.
Full list of contributors can be found here.
Itineris WP Coding Standards is licensed under the MIT License. Please see License File for more information.