yoast / yoastcs
PHP_CodeSniffer rules for Yoast projects
Installs: 541 833
Dependents: 28
Suggesters: 0
Security: 0
Stars: 20
Watchers: 15
Forks: 4
Open Issues: 31
Type:phpcodesniffer-standard
Requires
- php: >=5.4
- dealerdirect/phpcodesniffer-composer-installer: ^0.6.2 || ^0.7 || ^1.0
- php-parallel-lint/php-console-highlighter: ^1.0.0
- php-parallel-lint/php-parallel-lint: ^1.3.2
- phpcompatibility/phpcompatibility-wp: ^2.1.4
- squizlabs/php_codesniffer: ^3.7.2
- wp-coding-standards/wpcs: ^2.3.0
Requires (Dev)
- phpcompatibility/php-compatibility: ^9.3.5
- phpcsstandards/phpcsdevtools: ^1.2.0
- phpunit/phpunit: ^4.0 || ^5.0 || ^6.0 || ^7.0
- roave/security-advisories: dev-master
- dev-develop
- 2.3.1
- 2.3.0
- 2.2.1
- 2.2.0
- 2.1.0
- 2.0.2
- 2.0.1
- 2.0.0
- 1.3.0
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.0
- 1.0
- 0.5
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4
- 0.3
- 0.2
- 0.1
- dev-JRF/changelog-add-diff-link
- dev-main
- dev-release/2.3.1
- dev-JRF/version-2.3.1
- dev-JRF/new-minimum-php-72
- dev-TEMP/docs-validation-test
- dev-WIP/yoastcs-vendor
- dev-WIP/new-modern-class-refs-sniff
- dev-74-introduce-required-parameters-sniff
This package is auto-updated.
Last update: 2023-03-09 10:23:53 UTC
README
Yoast Coding Standards (YoastCS) is a project with rulesets for code style and quality tools to be used in Yoast projects.
Installation
Standalone
Standards are provided as a Composer package and can be installed with:
composer create-project yoast/yoastcs:"dev-main"
Composer will automatically install dependencies, register standards paths, and set default PHP Code Sniffer standard to Yoast
.
As dependency
To include standards as part of a project require them as development dependencies:
composer config allow-plugins.dealerdirect/phpcodesniffer-composer-installer true composer require --dev yoast/yoastcs:"^2.0"
Composer will automatically install dependencies and register the YoastCS and other external standards with PHP_CodeSniffer.
Tools provided via YoastCS
- PHP Parallel Lint
- PHP_CodeSniffer and select standards for PHP_CodeSniffer, including a number of Yoast native sniffs.
PHP Parallel Lint
PHP Parallel Lint is a tool to lint PHP files against parse errors.
PHP Parallel Lint does not use a configuration file, so command-line options need to be passed to configure what files to scan.
It is best practice within the Yoast projects, to add a script to the composer.json
file which encapsules the command with the appropriate command-line options to ensure that running the tool will yield the same results each time.
Typically, (a variation on) the following snippet would be added to the composer.json
file for a project:
"scripts" : { "lint": [ "@php ./vendor/php-parallel-lint/php-parallel-lint/parallel-lint . -e php --show-deprecated --exclude vendor --exclude .git" ] }
PHP Code Sniffer
Set of PHP_CodeSniffer rules.
Severity levels:
- error level issues are considered mandatory to fix in Yoast projects and enforced in continuous integration
- warning level issues are considered recommended to fix
The YoastCS Standard
The Yoast
standard for PHP_CodeSniffer is comprised of the following:
- The
WordPress
ruleset from the WordPress Coding Standards implementing the official WordPress PHP Coding Standards, with some select exclusions. - The
PHPCompatibilityWP
ruleset which checks code for PHP cross-version compatibility while preventing false positives for functionality polyfilled within WordPress. - Select additional sniffs taken from
PHP_CodeSniffer
. - A number of custom Yoast specific sniffs.
Files within version management and dependency related directories, such as the Composer vendor
directory, are excluded from the scans by default.
Sniffs
To obtain a list of all sniffs used within YoastCS:
"vendor/bin/phpcs" -e --standard=Yoast
Sniff Documentation
Not all sniffs have documentation available about what they sniff for, but for those which do, this documentation can be viewed from the command-line:
"vendor/bin/phpcs" --standard=Yoast --generator=Text
Running the sniffs
Command line
"vendor/bin/phpcs" --extensions=php /path/to/folder/
For more command-line options, please have a read through the PHP_CodeSniffer documentation.
Yoast plugin repositories
All Yoast plugin repositories contain a [.]phpcs.xml.dist
file which contains the repository specific configuration.
From the root of these repositories, you can run PHPCS by using:
composer check-cs
PhpStorm
Refer to Using PHP Code Sniffer Tool in the PhpStorm documentation.
After installation, the Yoast
standard will be available as a choice in PHP Code Sniffer Validation inspection.
Changelog
The changelog for this package can be found in the CHANGELOG.md file.