Skip to content

Instantly share code, notes, and snippets.

@wpsmith
Created August 24, 2020 14:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wpsmith/882a9452a2fda4ace17544a0d90dd065 to your computer and use it in GitHub Desktop.
Save wpsmith/882a9452a2fda4ace17544a0d90dd065 to your computer and use it in GitHub Desktop.
PHP: PHPCS for a WordPress theme.
<?xml version="1.0"?>
<ruleset name="WPS">
<description>Generally-applicable sniffs for WordPress plugins.</description>
<!-- What to scan -->
<file>.</file>
<exclude-pattern>/vendor/</exclude-pattern>
<exclude-pattern>/node_modules/</exclude-pattern>
<!-- How to scan -->
<!-- Usage instructions: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Usage -->
<!-- Annotated ruleset: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml -->
<arg value="spvvv"/> <!-- Show sniff and progress -->
<arg name="basepath" value="./"/><!-- Strip the file paths down to the relevant bit -->
<arg name="colors"/>
<arg name="extensions" value="php"/>
<arg name="parallel" value="8"/><!-- Enables parallel processing when available for faster results. -->
<!-- Exclude from checking package managers directiories. -->
<exclude-pattern>*/vendor/*</exclude-pattern>
<exclude-pattern>*/node_modules/*</exclude-pattern>
<!-- Disallow using a short array syntax. -->
<rule ref="Generic.Arrays.DisallowShortArraySyntax.Found">
<type>warning</type>
</rule>
<!-- Extend WordPress Coding Standard ruleset. -->
<rule ref="WordPress-Extra" />
<!-- Rules: Check PHP version compatibility -->
<!-- https://github.com/PHPCompatibility/PHPCompatibility#sniffing-your-code-for-compatibility-with-specific-php-versions -->
<config name="testVersion" value="5.3-"/>
<!-- Rules: WooCommerce -->
<!-- https://github.com/woocommerce/woocommerce-sniffs/ -->
<rule ref="WooCommerce">
<include-pattern>*/woocommerce/*</include-pattern>
<include-pattern>*/classes/WC*.php</include-pattern>
<include-pattern>*/classes/WAS.php</include-pattern>
</rule>
<!-- https://github.com/PHPCompatibility/PHPCompatibilityWP -->
<rule ref="PHPCompatibility">
<exclude-pattern>tests/</exclude-pattern>
</rule>
<!-- Rules: WordPress Coding Standards -->
<!-- https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards -->
<!-- https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/wiki/Customizable-sniff-properties -->
<!-- @todo Update a rule value to your project minimum supported WP version string -->
<config name="minimum_supported_wp_version" value="4.6"/>
<!-- Rules: WordPress VIP -->
<!-- <rule ref="WordPress">-->
<!-- <exclude name="WordPress.VIP"/>-->
<!-- </rule>-->
<!-- Rules: WordPress Internationalization -->
<!-- @todo Update a rule value to your project textdomain string -->
<rule ref="WordPress.WP.I18n">
<properties>
<!-- Value: replace the text domain used. -->
<property name="text_domain" type="array" value="storefront,setantabooks"/>
</properties>
</rule>
<!-- WordPress Coding Standards Modifications -->
<!-- @todo Update a rule value to your project prefix string -->
<rule ref="WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound">
<exclude-pattern>*/woocommerce/*</exclude-pattern>
<exclude-pattern>*/woocommerce/emails/*</exclude-pattern>
</rule>
<rule ref="WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound">
<exclude-pattern>*/woocommerce/*</exclude-pattern>
<exclude-pattern>*/woocommerce/emails/*</exclude-pattern>
</rule>
<rule ref="WordPress.NamingConventions.PrefixAllGlobals">
<properties>
<!-- Value: replace the function, class, and variable prefixes used. Separate multiple prefixes with a comma. -->
<property name="prefixes" type="array" value="WPS\WP\Plugins,wps_,sb_"/>
</properties>
</rule>
<!-- Turn on theme's filenames validation. -->
<rule ref="WordPress.Files.FileName">
<properties>
<property name="is_theme" value="true" />
</properties>
</rule>
<!-- Rules: Ignore Filename WordPress Coding Standards Rules in favor of PSR-4 -->
<rule ref="WordPress.WhiteSpace.ControlStructureSpacing">
<properties>
<property name="blank_line_check" value="true"/>
</properties>
</rule>
<!-- Rules: Ignore Filename WordPress Coding Standards Rules in favor of PSR-4 -->
<rule ref="WordPress.Files.FileName.NotHyphenatedLowercase">
<type>warning</type>
<exclude-pattern>/classes/</exclude-pattern>
</rule>
<rule ref="WordPress.Files.FileName.InvalidClassFileName">
<type>warning</type>
<exclude-pattern>/classes/</exclude-pattern>
</rule>
<!-- Check for usage of deprecated functions. -->
<!-- @todo Update a rule value to your project minimum supported WP version string -->
<rule ref="WordPress.WP.DeprecatedFunctions">
<properties>
<property name="minimum_supported_version" value="4.0" />
</properties>
</rule>
<!-- Excluding Rules -->
<rule ref="WordPress">
<exclude name="WordPress.WhiteSpace.ControlStructureSpacing.BlankLineAfterEnd"/>
</rule>
<rule ref="PEAR.Functions.FunctionCallSignature">
<exclude name="PEAR.Functions.FunctionCallSignature.ContentAfterOpenBracket" />
<exclude name="PEAR.Functions.FunctionCallSignature.CloseBracketLine" />
</rule>
</ruleset>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment