goedemiddag / laravel-autodiscovery-lock
Creates a lock file containing all the packages which are auto-discovered by Laravel.
Installs: 1 255
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 2
Forks: 4
Open Issues: 4
Requires
- php: ^8.1
- laravel/framework: ^8.0 || ^9.0 || ^10.0 || ^11.0
- symfony/filesystem: ^6.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.13
- orchestra/testbench: ^7.17
- phpstan/phpstan: ^1.9
- rector/rector: ^0.14.8
This package is auto-updated.
Last update: 2024-11-10 09:13:42 UTC
README
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
Contributing
Found a bug or want to add a new feature? Great! There are also many other ways to make meaningful contributions such as reviewing outstanding pull requests and writing documentation. Even opening an issue for a bug you found is appreciated.
If you would like to contribute code, please see our contributing guide
Credits
- Bonroyage - For helping out with the initial implementation.
- NiekKeijzer - For reviewing the code for the initial implementation.
- All Contributors