PHP Code Sniffer¶
Configuring PHP Code Sniffer¶
If you have a configuration file
phpcs.xml.dist in your repository, you can easily configure PHP_CodeSniffer in your configuration as follows:
build: nodes: analysis: tests: override: - phpcs-run # If you have a phpcs.xml in a sub-folder - phpcs-run --standard=build/sub/folder/phpcs.xml build/sub/folder
phpcs-run is a built-in wrapper for PHP_CodeSniffer which takes care of results and output format, however all the options of PHP_CodeSniffer are supported as well.
Using a Specific PHP Code Sniffer Version¶
If you would like to use a specific PHP CodeSniffer version, you can add it as a dev dependency to your project,
phpcs-run wrapper will automatically start using the bundled version.
Alternatively, you can also install the version as part of the build process:
build: nodes: analysis: dependencies: after: - composer require --dev "squizlabs/php_codesniffer=3.2.2"
Configuration via the Website¶
For PHP CodeSniffer, we offer two configuration modes:
- via a
phpcs.xmlconfiguration file in the root folder of your project (default).
- Alternatively, via our website config editor.
If you would like to use the website-based configuration, it has to be enabled in your configuration file like this:
build: nodes: analysis: tests: override: - command: phpcs-run use_website_config: true # use configuration from website editor
Generally, you can use any PHP CodeSniffer Coding Standard. If you require a custom standard,
we recommend to use a
phpcs.xml file and set
use_website_config: false in your configuration.
You can install your own coding standards for example as part of your composer's dev dependencies.
Problems with Drupal Coding Standard¶
The Drupal coding standard does not yet support the newest version of PHP CodeSniffer.
As a result, you need to explicitly configure the 2.9 branch of PHP CodeSniffer:
build: nodes: analysis: dependencies: after: - composer require --dev squizlabs/php_codesniffer:2.9 tests: override: - command: phpcs-run use_website_config: false