Pronamic WordPress Coding Standards for PHP_CodeSniffer.
We try to provide support for the last 3 major releases of PHP and WordPress in our projects.
8.3
8.2
8.1
https://www.php.net/supported-versions.php
6.5
6.4
6.3
https://codex.wordpress.org/WordPress_Versions
- https://make.wordpress.org/core/handbook/best-practices/browser-support/
- https://make.wordpress.org/core/handbook/references/php-compatibility-and-wordpress-versions/
https://github.com/PHPCSStandards/PHP_CodeSniffer
https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki/Usage
By default use colors in output.
<arg name="colors" />
By default only check files with php
extension:
<arg name="extensions" value="php" />
By default use 8
parallel processes.
<arg name="parallel" value="8" />
squizlabs/PHP_CodeSniffer#1732
By default show sniff codes in all reports. By default show progress of the run.
<arg value="sp" />
https://github.com/PHPCompatibility/PHPCompatibilityWP
By default this package test PHP 8.1
and higher via the following setting:
<config name="testVersion" value="8.1-"/>
https://github.com/PHPCompatibility/PHPCompatibility
Required through PHPCompatibilityWP
.
https://github.com/WordPress/WordPress-Coding-Standards
By default the minimum WordPress version to check is set to 6.3
via the following setting:
<config name="minimum_supported_wp_version" value="6.3" />
https://github.com/Automattic/VIP-Coding-Standards
https://github.com/Automattic/VIP-Coding-Standards
https://github.com/sirbrillig/phpcs-variable-analysis
According to the WordPress PHP Coding Standards:
Class file names should be based on the class name with
class-
prepended and the underscores in the class name replaced with hyphens, for exampleWP_Error
becomes:class-wp-error.php
Source: https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/#naming-conventions
This sniff will check on this naming convention:
Class file names should be based on the class name with "class-" prepended. Expected class-test.php, but found Test.php.
We often use the PSR-4 autoloading mechanism and therefore deviate from it.
According to the WordPress PHP Coding Standards:
Files should be named descriptively using lowercase letters. Hyphens should separate words.
my-plugin-name.php
Source: https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/#naming-conventions
Filenames should be all lowercase with hyphens as word separators. Expected test.php, but found Test.php.
We often use the PSR-4 autoloading mechanism and therefore deviate from it.
According to the WordPress PHP Coding Standards:
Using long array syntax (
array( 1, 2, 3 )
) for declaring arrays is generally more readable than short array syntax ([ 1, 2, 3 ]
), particularly for those with vision difficulties. Additionally, it’s much more descriptive for beginners.Arrays must be declared using long array syntax.
Source: https://developer.wordpress.org/coding-standards/wordpress-coding-standards/php/#declaring-arrays