NiekKeijzer / laravel-autodiscovery-lock

This package allows you to monitor the autodiscovery of your Laravel application

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Laravel autodiscovery lock

This package allows you to monitor the autodiscovery of your Laravel application. By running the supplied command in the post-autoload-dump event, you can generate a file that contains all the autodiscovered packages. This file can then be used to check for unacknowledged autodiscoveries.

Installation

First use composer to install the package using the following command

composer require goedemiddag/laravel-autodiscovery-lock

This will register a command in your application. To use this command, you need to add it to the post-autoload-dump event in your composer.json file right under the package:discover function laravel has already registered there. It should look something like this:

{
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi",
            "@php artisan autodiscovery:generate-lock"
        ]
    }
}

Usage

The package has two main usages. Generating a lock file to keep track of the autodiscoveries and checking for unacknowledged autodiscoveries,
and Verifying that your lock file and autodiscovered packages are in sync.

Generating the lock file

To generate the first autodiscovery lock file, run the following command:

php artisan autodiscovery:generate-lock

This will generate a file called autodiscovery.lock in the root of your project. This file contains all the autodiscovered packages and which providers / aliases they provide. After generating and committing this file, and registering the above command in the composer.json scripts you should be set for automatic updates each time composer installs or updates a package, or dumps the autoload in general.

Verifying the lock file

Validating the lock file allows you to make sure installed packages did not change their autodiscoveries without you knowing. To validate the lock file, run the following command:

php artisan autodiscovery:verify-lock

If there is a difference between the lock and the autodiscovered packages, the command will exit with a non-zero exit code. This allows you to use this command in your CI/CD pipeline with ease. Just run the command in the pipeline for your Pull Requests, and/or run the command in your build pipeline.

Pipeline examples

TBD

Credits

About

This package allows you to monitor the autodiscovery of your Laravel application

License:MIT License


Languages

Language:PHP 100.0%