Polylang Coding Standards is a ruleset for code quality tools to be used in WP Syntex's projects.
Standards are provided as a Composer package and can be installed with:
composer require --dev wpsyntex/polylang-cs:dev-mainSet of PHP_CodeSniffer rules.
The following rulesets are included:
- Several custom sniffs mainly focused on naming conventions,
- NeutronStandard,
- PHPCompatibilityWP (for PHP and WP version),
- Suin (unmaintained; breaks on PHP 8.2+ with deprecation errors. Exclude
Suin.Classes.PSR4in yourphpcs.xml.distand enforce PSR-4 withcomposer.jsonautoload.psr-4instead), - WordPress,
- WordPressVIPMinimum.
Example for your phpcs.xml.dist file:
<?xml version="1.0"?>
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Polylang Foobar" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/squizlabs/PHP_CodeSniffer/master/phpcs.xsd">
<description>Coding standards for Polylang Foobar.</description>
<arg value="p"/><!-- Shows progress. -->
<arg name="colors"/><!-- Shows results with colors. -->
<arg name="extensions" value="php"/><!-- Limits to PHP files. -->
<file>.</file>
<!-- Our own ruleset. -->
<rule ref="Polylang">
<exclude name="Squiz.PHP.CommentedOutCode.Found"/>
<exclude name="WordPress.PHP.DiscouragedPHPFunctions.serialize_serialize"/>
</rule>
<!-- Run against the PHPCompatibility ruleset: PHP 5.6 and higher + WP 5.4 and higher. -->
<config name="testVersion" value="5.6-"/>
<config name="minimum_supported_wp_version" value="5.4"/>
</ruleset>When referencing this ruleset with nested <exclude> rules, omit <arg name="cache"/> (PHPCS cache can ignore them).