Package auto-discovery, and how to opt a package out

5.5 reads a package’s extra.laravel block and registers its providers and aliases automatically, which removes two config edits from every installation and removes them from view as well.

{
    "extra": {
        "laravel": {
            "providers": ["Vendor\Package\ServiceProvider"],
            "aliases": { "Thing": "Vendor\Package\Facade" }
        },
        "dont-discover": ["vendor/other-package"]
    }
}

The debugging consequence is real: a binding you did not write now comes from a package you did not register, and config/app.php no longer lists what is loaded. php artisan package:discover shows the current set, and dont-discover in the application’s own composer.json takes a package back under manual control — which is what you want for anything whose provider order matters.