You will probably have some custom tasks or event listeners that are not included in the default GrumPHP project. It is possible to group this additional GrumPHP configuration in an extension. This way you can easily create your own extension package and load it whenever you need it.
The configuration looks like this:
# grumphp.yml
grumphp:
extensions:
- My\Project\GrumPHPExtension
The configured extension class needs to implement ExtensionInterface
.
Now you can register the tasks and events from your own package in the service container of GrumPHP.
For example:
<?php
namespace My\Project;
use GrumPHP\Extension\ExtensionInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
class GrumPHPExtension implements ExtensionInterface
{
public function load(ContainerBuilder $container)
{
// Register your own stuff to the container!
}
}
This page lists third party extensions implementing useful GrumPHP tasks.
- pluswerk/grumphp-bom-task Forces files to have no BOM (Byte Order Mark).
- pluswerk/grumphp-xliff-task Validates XLIFF files.
- wearejust/grumphp-extra-tasks Extra GrumPHP tasks like a PhpCsAutoFixer.
- nlubisch/grumphp-easycodingstandard GrumPHP task for running EasyCodingStandard.
- jonmldr/grumphp-doctrine-task GrumPHP task for Doctrine's schema validation in Symfony projects.
Did you write your own extension? Feel free to add it to this list!