Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Grumphp Laravel Package

phpro/grumphp

GrumPHP is a Composer plugin that installs Git hooks to run quality checks on every commit. It executes configured tasks like tests and linters, blocks failing commits, and helps teams enforce coding standards and best practices automatically.

View on GitHub
Deep Wiki
Context7

Conventions

Are you building multiple applications or packages and do you want to make sure the same rules are validated on all those repositories? No problem! Since we are using the Symfony Container, your configuration can be very flexible. In this chapter we will discuss some ways to create your own convention checker package.

Hardcoded conventions

If you want to use one grumphp.yml file which cannot be customized by your project, this is the way to configure your application:

composer require --dev [your-project]/[your-convention-package]

Next you'll have to change the project's composer.json file:

{
    "extra": {
        "grumphp": {
            "config-default-path": "vendor/[your-project]/[your-convention-package]/[some-dir]/grumphp.yml"
        }
    }
}

You can see an example of how to build your own conventions checker.

Customizable conventions

Customizable conventions are very flexible! The idea is that you define a grumphp.yml file which is filled with custom parameters. Next, you can import a general grumphp.yml file from another vendor directory inside the project's config file. The configuration will look like this:

composer require --dev [your-project]/[your-convention-package]

Sample conventions grumphp file:

# Convention grumphp.yml
parameters:
    convention.git_commit_message_matchers: ['/.*/']
grumphp:
    tasks:
        phpunit: ~
        git_commit_message:
            matchers: "%convention.git_commit_message_matchers%"
            case_insensitive: false
            multiline: false

Sample project grumphp file:

# Project grumphp.yml
imports:
    - { resource: vendor/[your-project]/[your-convention-package]/grumphp.yml }
parameters:
    convention.git_commit_message_matchers: ['/^JIRA-\d+: [A-Z].+\./']

This way, you can define some common rules, but make it possible to customize some project specific settings.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
cadot.eu/make
besmartand-pro/php-quality-config
sentix/ai-chatbot
codifyo/ts-generator-bundle
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky