logo-grump

Optimiser votre workflow avec GrumPHP

Spread the love

GrumPHP est une une librairie de tâches de pre-commit. Lors de son installation, il va ajouter un git hook. Ce dernier lancera GrumPHP pour qu’il lance, à son tour, une liste de tâches.

Concrètement, vous avez décidé de respecter PSR-12 (code-style), inutile de perdre du temps sur une PR pour vérifier que la PSR est respectée. Lors du commit une vérification aura lieu et bloquera le commit si elle n’est pas respectée.

Installation

composer require --dev phpro/grumphp-shim
composer require --dev squizlabs/php_codesniffer

Lors de l’installation, la commande va vous demander si vous souhaitez créer le fichier grumphp.yml, répondez « oui ».
Après vous allez découvrir toutes les tâches qui existent dans GrumPHP. Nous allons configurer PHPCS

#grumphp.yml
grumphp:
    tasks: 
        phpcs: 
            standard: 'PSR12'

Il est temps d’analyser votre code 😉
Cette commande va analyser tout votre code. Mais lors du commit, seuls vos fichiers seront analysés.

vendor/bin/grumphp run

Vous venez de gagner de précieuses heures en relecture de PR.

Aller plus loin

grumphp:
    tasks:
        phpcsfixer:
            config: .php_cs
        phpstan:
            configuration: phpstan.neon
            memory_limit: "-1"
            use_grumphp_paths: false
            level: 7
        phpunit:
            testsuite: "Unit"
        phpcs:
            standard: 'PSR12'
            ignore_patterns:
                - /^src\/Migrations\/(.*)/
                - /^config\/(.*)/

    parallel:
        enabled: true
        max_workers: 4

Voici un exemple un peu plus complet. Vous pouvez cumuler plusieurs tâches et les faire tourner en parallèle. Attention à ne pas mettre une tâche trop longue, des tests fonctionnels par exemple, car vos commit vont prendre du temps.

Les commandes utiles

vendor/bin/grumphp run --tasks=phpcs,phpstan
vendor/bin/grumphp run 
git commit -n

La 1ère lance les tâches phpcs et phpstan sur tout votre code. A faire après l’ajout d’une tâche.
La 2ème lance toutes les tâches sur tout votre code. A faire après avoir installé GrumPHP.
La dernière, permet de désactiver le hook, donc de ne pas lancer GrumPHP.

chevron_left
chevron_right

Laisser un commentaire

%d blogueurs aiment cette page :