woocommerce/phpcs.xml

105 lines
3.2 KiB
XML
Raw Permalink Normal View History

2016-08-27 14:18:14 +00:00
<?xml version="1.0"?>
<ruleset name="WordPress Coding Standards">
2017-09-27 16:07:41 +00:00
<description>WooCommerce dev PHP_CodeSniffer ruleset.</description>
2016-08-27 14:18:14 +00:00
<file>.</file>
<!-- Exclude paths -->
<exclude-pattern>tests/cli/</exclude-pattern>
<exclude-pattern>includes/libraries/</exclude-pattern>
<exclude-pattern>includes/legacy/</exclude-pattern>
<exclude-pattern>includes/api/legacy/</exclude-pattern>
<exclude-pattern>includes/api/v1/</exclude-pattern>
2018-03-15 20:23:40 +00:00
<exclude-pattern>includes/class-wc-geo-ip.php</exclude-pattern>
<exclude-pattern>includes/wc-deprecated-functions.php</exclude-pattern>
<exclude-pattern>*/node_modules/*</exclude-pattern>
<exclude-pattern>*/vendor/*</exclude-pattern>
<!-- Show progress, show the error codes for each message (source). -->
2019-12-20 15:46:57 +00:00
<arg value="ps" />
2019-12-20 12:09:14 +00:00
<!-- Strip the filepaths in reports down to the relevant bit. -->
2019-12-20 15:46:57 +00:00
<arg name="basepath" value="./" />
<!-- Check up to 8 files simultaneously. -->
2019-12-20 15:46:57 +00:00
<arg name="parallel" value="8" />
<!-- Configs -->
<config name="minimum_supported_wp_version" value="5.2" />
2020-04-07 00:07:33 +00:00
<config name="testVersion" value="7.0-" />
2017-11-21 12:47:42 +00:00
<!-- Rules -->
2017-12-21 23:29:49 +00:00
<rule ref="WooCommerce-Core" />
<rule ref="WooCommerce.Functions.InternalInjectionMethod">
<include-pattern>src/</include-pattern>
<include-pattern>tests/php/src/</include-pattern>
<properties>
<property name="injectionMethod" value="init"/>
</properties>
</rule>
<rule ref="WordPress.WP.I18n">
<properties>
<property name="text_domain" type="array" value="woocommerce" />
</properties>
</rule>
<rule ref="PHPCompatibility">
<exclude-pattern>tests/</exclude-pattern>
</rule>
<rule ref="WordPress.Files.FileName.InvalidClassFileName">
<exclude-pattern>includes/**/abstract-*.php</exclude-pattern>
<exclude-pattern>tests/</exclude-pattern>
<exclude-pattern>src/</exclude-pattern>
<exclude-pattern>tests/php/src/</exclude-pattern>
</rule>
<rule ref="Squiz.Classes.ClassFileName">
<include-pattern>src/</include-pattern>
<include-pattern>tests/php/src/</include-pattern>
</rule>
<rule ref="Squiz.Classes.ValidClassName">
<include-pattern>src/</include-pattern>
<include-pattern>tests/php/src/</include-pattern>
</rule>
<rule ref="Generic.Commenting">
<exclude-pattern>tests/</exclude-pattern>
</rule>
<rule ref="PEAR.Functions.FunctionCallSignature.EmptyLine">
<exclude-pattern>tests/e2e-tests/</exclude-pattern>
</rule>
<rule ref="WordPress.Files.FileName.NotHyphenatedLowercase">
<exclude-pattern>i18n/</exclude-pattern>
<exclude-pattern>src/</exclude-pattern>
<exclude-pattern>tests/php</exclude-pattern>
<exclude-pattern>tests/Tools/</exclude-pattern>
</rule>
<rule ref="Squiz.Commenting.FileComment.MissingPackageTag">
<exclude-pattern>src/</exclude-pattern>
<exclude-pattern>tests/php/</exclude-pattern>
</rule>
<rule ref="Squiz.Commenting.FileComment.Missing">
<exclude-pattern>src/</exclude-pattern>
<exclude-pattern>tests/php/</exclude-pattern>
</rule>
<rule ref="Squiz.Commenting.FunctionCommentThrowTag.Missing">
<exclude-pattern>tests/php/</exclude-pattern>
</rule>
<rule ref="Squiz.Commenting.FileComment.Missing">
<exclude-pattern>tests/php/</exclude-pattern>
</rule>
Changes in the overall organization of the dependency injection: - The `Container` class now implements `Psr\Container\ContainerInterface` (and registers itself as such), holding a private instance of the real container. This way it's a read-only container from the point of view of plugins (which should use their own containers, but can still use this to get WooCommerce classes). - All registrations are now done in the `Container` constructor via service providers. - The container instance is now held in a global variable, set in `woocommerce.php` - Added the `wc_get_container` function for old code. - Added the `AbstractServiceProvider` class, which inherits with the corresponding League's class and adds some utility methods, most notably `add/shareWithAutoArguments`. - Added the `ActionsProxy` and `LegacyProxy` classes, they are registered via a dedicated service provider. - `WC_Queue_Interface` is no longer resolvable via the container (which is for classes inside `src` only). - All the method names in the new classes have the format `fooBarFizz` to be PSR4 compliant, so the MethodNameInvalid error has been disabled in phpcs.xml for the `src` directory. - Introduced the `@public` annotation for public API classes (classes that plugins can use and whose backwards compatibility we guarantee), applied to `ActionsProxy` and to `LegacyProxy` for now. - Removed the hack for the autoloader as now it doesn't work anyway. For the changes in this branch to work, now WP_DEBUG must be false.
2020-06-18 12:15:08 +00:00
<rule ref="WordPress.NamingConventions.ValidFunctionName.MethodNameInvalid">
<exclude-pattern>src/</exclude-pattern>
</rule>
2016-08-27 14:18:14 +00:00
</ruleset>