Package / Composer plugin for standardizing development tools.
If you already have a grumphp.yml and/or phpcs.xml file in your project, you should rename them. E.g. mv grumphp.yml grumphp.yml.backup
If you want to add new tasks and rules on a case-by-case basis, check the files in the distfiles folder of this package.
Note: This package is not going to overwrite existing ones, but it might not work with them either.
In your project, simply use
composer require --dev brainsum/drupal-dev-tools:^6.0.0
In the grumphp.yml file in your project, add the following:
imports:
- { resource: vendor/brainsum/drupal-dev-tools/convention/grumphp.yml }
This will signal grumphp to import everything from this package.
You can customize the rules when needed, too:
parameters:
convention.git_commit_message_whitelist: ['/^([A-Z]+-[\d]+ )+\| [A-Za-z\d\s\.]+([^.])+\.{1}$/s']
For more information, see:
The files grumphp.yml and phpcs.xml should now be created in your project root.
They should be good to go, but you should take a look at them and customize them for the current project as necessary.
E.g, phpcs.xml descriptions, namings, checked folders, etc.; grumphp.yml php version, etc.
If they, for some reason, don't get created, you can copy their contents from the files from vendor/brainsum/drupal-dev-tools/distfiles as needed.
If you just want to use some settings from grumphp.yml, not the whole thing, see convention/grumphp.yml,
as distfiles/grumphp.yml is only an import file and doesn't contain any other directives.
For the pre-defined settings see distfiles/grumphp.yml and convention/grumphp.yml.
Note, we are also trying to create a phpcs.xml file in the project root. The source for that file is also in the distfiles folder.
The .twig-cs-fixer.php file is also created in the project root copy of distfiles/.twig-cs-fixer.php.
Twig CS Fixer will run on web/modules/custom, web/themes/custom, and web/profiles/custom directories by default.
We are using custom rules for Twig CS Fixer:
This rule disallows the use of the raw filter for variables, as it can lead to security vulnerabilities if not used carefully.
{{ variable|raw }}You can disable this rule (before the line with raw filter) by adding the following comment in your Twig template:
{# @TwigCsIgnoreNoRawFilterRule #}This rule disallows the use of attributes without quotes, as it can lead to XSS vulnerabilities.
<div class="wrapper" id={{ item.label }}></div>This rule disallows the use of certain Twig functions that are considered as debugging functions.
- dump, dpm, kint, print_r, var_dump, var_export, vardumper
{{ dump() }}For more information, see the Twig CS Fixer documentation.