STANDARDS.md 3.1 KB

Developing with Coding Standards for Examples for Developers

Examples uses mostly the same coding standards as Drupal core.

If you see a discrepancy between the coding standards tools used by core and those used by Examples, please file an issue so that Examples can follow core.

Examples uses the phpcs tool to allow for checking PHP coding standards. We use the drupal/coder project for Drupal-specific coding standards.

We also use eslint for JavaScript coding standards, and csslint for CSS.

Examples has a phpcs.xml.dist file at the root of the project. phpcs uses this file to specify the current coding standards 'sniffs' which code in the project must pass.

Contributors should install phpcs in their local Drupal installation, and then use that to run phpcs against Examples as part of their development and review process. (See details below on how to install and run this tool.)

Contributors can also patch the phpcs.xml.dist file itself, in order to fix the codebase to pass a given rule or sniff. Patches which do this should be limited to a single rule or sniff, in order make the patch easier to review.

Examples also uses the Coder project (drupal/coder), which adds additional Drupal-specific coding standards. We're currently locked to Coder version 8.2.8, but this should change to reflect the state of core's coding standards.

Installing phpcs

Current versions of Drupal 8 core require phpcs and Coder as dev dependencies. That means they're already probably installed in your core vendor/ directory.

We need to tell phpcs to use the Drupal coding standard provided by Coder, because it isn't configured that way by default.

Like this:

$ cd my/drupal/root/
$ ./vendor/bin/phpcs --config-set installed_paths /full/path/to/drupal/vendor/drupal/coder/coder_sniffer/
// phpcs now knows how to find the Drupal standard. You can test it:
$ cd core
$ ../vendor/bin/phpcs -e --standard=Drupal
// Shows you a bunch of Drupal-related sniffs.

Running phpcs

Now you can run phpcs:

$ cd modules/examples
$ ../../vendor/bin/phpcs -ps
// phpcs uses Examples' phpcs.xml.dist to verify coding standards.
// -p shows you progress dots.
// -s shows you sniff errors in the report.

If there are errors, they can sometimes be fixed with phpcbf, which is part of the phpcs package.

$ ../../vendor/bin/phpcbf
// phpcbf now performs automated fixes.

Always look at the changes to see what phpcbf did.

And always re-run phpcs in order to discover whether phpcbf handled all the errors.

Installing eslint

eslint is a node.js tool. You can and probably should install it globally, since installing it locally would add files to the examples project. Instructions available here: https://www.npmjs.com/package/eslint

Examples has an .eslintrc file which defines the JavaScript coding standard. This file should be identical to the current Drupal core standard.

Running eslint

You can run eslint this way:

$ cd /path/to/examples
$ eslint .