GrumPHP

Надоело изо дня в день защищать качество кода снова и снова? GrumPHP сделает это за вас!

GrumPHP — это плагин для composer, который регистрирует git хуки в вашем репозитории пакетов. Когда кто-то фиксирует изменения, GrumPHP запускает тесты для этих коммитов. Если тесты не будут пройдены — вы не сможете зафиксировать свои изменения.

Этот удобный инструмент не только улучшит вашу кодовую базу, но и научит ваших коллег писать чистый код, следуя лучшим рекомендациям, принятым в вашей команде.

GrumPHP уже имеет из коробки встроенный набор общих задач, поэтому вы сможете использовать его сразу с минимальной конфигурацией.

Установите GrumPHP самостоятельно и раскройте всю его мощь!

Демонстрация

GrumPHP

Установка

Так как GrumPHP — это плагин для composer, то установить его можно , добавив в качестве зависимости:

composer require --dev phpro/grumphp

После установки пакета GrumPHP прикрепит несколько git хуков к вашему проекту. А в логе composer вы увидите следующее оповешение:

Watch out! GrumPHP is sniffing your commits!

Настройка

Настраивается GrumPHP при помощи файла grumphp.yml или grumphp.yml.dist в корневой директории вшаего проекта.

# grumphp.yml
parameters:
    bin_dir: "./vendor/bin"
    git_dir: "."
    hooks_dir: ~
    hooks_preset: local
    stop_on_failure: false
    ignore_unstaged_changes: false
    hide_circumvention_tip: false
    process_async_limit: 10
    process_async_wait: 1000
    process_timeout: 60
    ascii:
        failed: grumphp-grumpy.txt
        succeeded: grumphp-happy.txt
    tasks:
        ant: ~
        atoum: ~
        behat: ~
        brunch: ~
        clover_coverage: ~
        codeception: ~
        composer: ~
        composer_require_checker: ~
        composer_script: ~
        deptrac: ~
        doctrine_orm: ~
        file_size: ~
        gherkin: ~
        git_blacklist: ~
        git_branch_name: ~
        git_commit_message: ~
        grunt: ~
        gulp: ~
        infection: ~
        jsonlint: ~
        kahlan: ~
        make: ~
        npm_script: ~
        phan: ~        
        phing: ~
        php7cc: ~
        phpcpd: ~
        phpcs: ~
        phpcsfixer: ~
        phpcsfixer2: ~
        phplint: ~
        phpmd: ~
        phpmnd: ~
        phpparser: ~
        phpspec: ~
        phpstan: ~
        phpunit: ~
        phpunitbridge: ~
        phpversion: ~
        progpilot: ~
        psalm: ~
        robo: ~
        securitychecker: ~
        shell: ~
        xmllint: ~
        yamllint: ~
    testsuites: 
    extensions: 

Совместимость

GrumPHP работает с PHP 5.6 и выше и протестирован со следующими git клиентами:

  • CLI Unix
  • CLI Mac
  • CLI Windows
  • PhpStorm Git
  • Atlassian SourceTree
  • Syntevo SmartGit

Ссылки

Источник: https://www.kobzarev.com/programming/grumphp/