awesomemotive / wpforms-phpcs
WPForms Coding Standards
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 12
Watchers: 13
Forks: 1
Open Issues: 10
Type:phpcodesniffer-standard
Requires
- automattic/vipwpcs: ^3.0.1
- phpcompatibility/php-compatibility: ^9.3.5
- squizlabs/php_codesniffer: ^3.10.2
- wp-coding-standards/wpcs: ^3.1.0
Requires (Dev)
- phpunit/phpunit: 6.5 - 9.6
- roave/security-advisories: dev-latest
README
Maintainers: The WPForms team
License: GPLv2 any later version.
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Description
WPForms coding standards are based on the WordPress Coding Standards and the PHPCompatibility Coding Standards and help create strict and high-quality code.
Installation
composer config repositories.repo-name vcs https://github.com/awesomemotive/wpforms-phpcs.git
composer require awesomemotive/wpforms-phpcs --dev
Configuration
Create the .phpcs.xml
or phpcs.xml
file at the root of your project:
<?xml version="1.0"?> <ruleset name="WPForms CS"> <description>The WPForms coding standard.</description> <exclude-pattern>\vendor/*</exclude-pattern> <exclude-pattern>\.github/*</exclude-pattern> <config name="testVersion" value="5.6-"/> <config name="multi_domains" value="true"/> <config name="minimum_supported_wp_version" value="5.2"/> <rule ref="WPForms"/> <rule ref="WPForms.PHP.ValidateDomain"> <properties> <property name="wpforms-lite" value="wpforms"/> <property name="wpforms" value="wpforms/pro/,wpforms/src/Pro/"/> </properties> </rule> </ruleset>
Sniffs detail
Validate Text Domain Sniff
The WPForms.PHP.ValidateDomain
sniff validates that you are using the correct text domain for i18n
functions such as __()
, _e()
, _n()
, etc.
By default, this sniff works for one domain in the project. We get a directory name based on the vendor
directory or the location of the phpcs.xml
/.phpcs.xml
file.
You can install our package to the plugins
directory and enable the multi-domain mode. in this case, the text domain will be the next folder name in the path. Structure:
../wp-content/plugins/ # → Root
├── wpforms/ # → `wpforms` domain.
└── wpforms-stripe/ # → `wpforms-stripe` domain.
In your config you should enable the multi_domains
property:
<?xml version="1.0"?> <ruleset name="WPForms CS"> <!-- ... --> <config name="multi_domains" value="true"/> <!-- ... --> </ruleset>
If you have different domains for directories inside your project (for example, for free and paid versions) and want to redefine the text domain for some paths:
../wp-content/plugins/ # → Root
├── wpforms/ # → `wpforms-lite` domain.
│ ├── pro/ # → `wpforms` domain.
│ └── src/ # → `wpforms-lite` domain.
│ ├── Admin/ # → `wpforms-lite` domain.
│ └── Pro/ # → `wpforms` domain.
└── wpforms-stripe/ # → `wpforms-stripe` domain.
In this case, you should add to the config file the property with name
as a text domain and value
as a path. If a domain has several paths, then list them via commas.
<?xml version="1.0"?> <ruleset name="WPForms CS"> <!-- ... --> <config name="multi_domains" value="true"/> <rule ref="WPForms.PHP.ValidateDomain"> <properties> <property name="wpforms-lite" value="wpforms"/> <property name="wpforms" value="wpforms/pro/,wpforms/src/Pro/"/> </properties> </rule> <!-- ... --> </ruleset>