Having trouble to set up auto-discovery for a Facade

Published 1 week ago by andrechalom

Hi! I'm developing a small package for Laravel, and it's working fine under Laravel 5.4. I'm trying to provide the composer rules for the new auto-discovery on Laravel 5.5, but it is failing to find the required class. I wasn't able to find any in-depth documentation of the auto-discovery, but from the changes in Laravel Debugbar and from the Laracast's Video it seems that the syntax is pretty straightforward:

   "extra": {
        "branch-alias": {
            "dev-master": "1.0-dev"
        },
        "laravel": {
            "providers": [
                "AndreChalom\\LaravelMultiselect\\MultiselectServiceProvider"
            ],
            "aliases": {
                "Multiselect": "AndreChalom\\LaravelMultiselect\\MultiselectFacade"
            }
        }
    },  

The MultiselectFacade and MultiselectServiceProvider are working fine when explicitly included in the config/app.php file, and I can use the {!! Multiselect::select(...) !!} just fine in my blade templates. I can also comment out the "MultiselectServiceProvider" line and everything works fine - the provider is auto-discovered and registers the Multiselect service. Yay!

However, if I delete the "MultiselectFacade" line from the config/app.php, relying on the auto-discovery, suddenly the application fails with "Class 'Multiselect' not found". What I may be missing? How can I debug this?

clay
clay
1 week ago (79,085 XP)

I tried loading your package to test, but packagist is on 0.0.3 which doesn't include the "laravel" key in composer.json for auto-discovery.

andrechalom

Hello, clay. Thanks for your input! You can load the "dev-master" from packagist, which has the required composer directives.

Sign In or create a forum account to participate in this discussion.