A Wealcoder PHP_CodeSniffer standard that extends the official WordPress Coding Standards—customized for modern, secure, and consistent PHP development across all Wealcoder projects. Designed to enforce best practices and maintain high code quality in line with Wealcoder's engineering guidelines.
Install via Composer:
composer require Wealcoder/wealcoder-coding-standardFor Global
composer global require Wealcoder/wealcoder-coding-standardThe package will automatically:
- Install PHP_CodeSniffer and required dependencies
- Register the
Wealcoder-Coding-Standardstandard - Set it as the default standard for your project
vendor/bin/phpcs .composer run phpcsvendor/bin/phpcs --standard=Wealcoder-Coding-Standard path/to/filesFor better IDE integration, create a .phpcs.xml.dist file in your project root:
<?xml version="1.0"?>
<ruleset name="Project Standards">
<description>A customized PHP_CodeSniffer ruleset that extends the official WordPress Coding Standards, tailored for modern, secure, and consistent PHP development practices.</description>
<!-- Scan these directories -->
<file>src/</file>
<file>inc/</file>
<!-- Exclude these paths -->
<exclude-pattern>vendor/</exclude-pattern>
<exclude-pattern>node_modules/</exclude-pattern>
<exclude-pattern>*.min.js</exclude-pattern>
<!-- Configuration -->
<config name="minimum_supported_wp_version" value="6.2" />
<config name="testVersion" value="7.4-8.5" />
<!-- Use WordPress Code standards -->
<rule ref="Wealcoder-Coding-Standard" />
<!-- Project-specific customizations -->
<rule ref="WordPress.WP.I18n">
<properties>
<property name="text_domain" type="array">
<element value="replace-with-your-current-text-domain"/>
</property>
</properties>
</rule>
</ruleset>Add to your CI workflow:
# GitHub Actions example
- name: PHP CodeSniffer
run: composer run phpcs- Minimum: PHP 7.4
- Maximum: PHP 8.4
- Compatibility: Uses PHPCompatibilityWP for WordPress-specific compatibility checks
- WordPress Coding Standards (with sensible exclusions)
- Tab indentation (1 tab per indent level)
- Space inside parentheses for readability
- Superfluous whitespace detection
- PHP compatibility checking for WordPress
The following rules are excluded for practical development:
- File naming conventions (WordPress.Files.FileName)
- Nonce verification requirements
- Direct database query restrictions
- Global variable override prohibitions
- Some documentation capitalization requirements
Create a phpcs.xml.dist file to override or add rules:
<rule ref="Wealcoder-Coding-Standard">
<!-- Enable a rule that's disabled by default -->
<exclude name="WordPress.Files.FileName" />
</rule>
<!-- Add custom exclusions -->
<rule ref="WordPress.Security.NonceVerification.Missing">
<exclude-pattern>admin/ajax-handlers/*</exclude-pattern>
</rule>Disable rules for specific code blocks:
// phpcs:disable WordPress.Security.NonceVerification.Missing
if ( isset( $_POST['data'] ) ) {
// Process data without nonce check
}
// phpcs:enable WordPress.Security.NonceVerification.Missing- PHP 7.4 or higher ( Upto 8.4 )
- Composer
- PHP_CodeSniffer 3.9.0 or higher
dealerdirect/phpcodesniffer-composer-installer: ^1.0phpcompatibility/phpcompatibility-wp: ^2.1wp-coding-standards/wpcs: ^3.1.0
- Fork the repository
- Create a feature branch
- Make your changes
- Test with
composer run phpcs - Submit a pull request
GPL-3.0-or-later
Wealcoder
Email: [email protected]
Organization: Wealcoder