thecodingmachine / laravel-universal-service-provider
This Laravel service provider allows Laravel applications to use service providers as defined in container-interop/service-provider
Requires
- php: >=5.5.0
- acclimate/container: ^1.0
- container-interop/service-provider: ~0.3.0
- laravel/framework: ^5.0
- mnapoli/simplex: ^0.2.1
- puli/cli: ^1.0
- puli/composer-plugin: ^1.0
- puli/discovery: ^1.0
README
Import service-provider
as defined in container-interop
into a Laravel application.
Usage
Installation
Add the package in composer:
composer require thecodingmachine/laravel-universal-service-provider ^1.0
Add \TheCodingMachine\Laravel\ContainerInteropBridgeServiceProvider
in your config/app.php
file.
config/app.php
<?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 container-interop-service-providers
:
config/app.php
<?php use \GlideModule\GlideServiceProvider; return [ ... 'container-interop-service-providers' => [ GlideServiceProvider::class ] ];
Now, you can do : $app->make('glide')
Disabling discovery
You can disable discovery using the container-interop-service-provider-enable-discovery
setting:
config/app.php
<?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