container-interop/service-provider bridge for Laravel
service-provider as defined in
container-interop into a Laravel application.
Add the package in composer:
composer require thecodingmachine/laravel-universal-service-provider ^1.0
\TheCodingMachine\Laravel\ContainerInteropBridgeServiceProvider in your
<?php return [ //... 'providers' => [ //... TheCodingMachine\Laravel\ContainerInteropBridgeServiceProvider::class ], //... ];
Usage using thecodingmachine/discovery
The bridge will use thecodingmachine/discovery to automatically discover the universal service providers of your project. If the service provider you are loading publishes itself on thecodingmachine/discovery, then you are done. The services declared in the service provider are available in the Laravel container!
Usage using manual declaration
If the service provider you are using does not publishes itself using thecodingmachine/discovery, you will have to declare it manually in the
container-interop-service-providers key of your `config/app.php' file.
Set the service provider fully qualified class name in the parameter
<?php use \GlideModule\GlideServiceProvider; return [ ... 'container-interop-service-providers' => [ GlideServiceProvider::class ] ];
Now, you can do :
You can disable discovery using the
<?php use \GlideModule\GlideServiceProvider; return [ ... 'container-interop-service-provider-enable-discovery' => false ];
##Purging the cache
The Laravel service provider in this package is a deferred provider.
Laravel compiles and stores a list of all of the services supplied by this provider. Then, only when you attempt to resolve one of these services does Laravel load the service provider.
If you add a new service to one of the universal service providers, you will need to purge the "compiled" services. You can do this with this command line:
php artisan clear-compiled