bnf / service-provider-bridge-bundle
This Symfony Bundle allows Symfony applications to use service providers as defined in container-interop/service-provider
Installs: 290
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 5
Type:symfony-bundle
Requires
- php: >=7.1.0
- container-interop/service-provider: ~0.4.0
- psr/container: ^1.0
- symfony/dependency-injection: ^4.1
- symfony/http-kernel: ^4.1
Requires (Dev)
- bnf/di: ^0.1.2
- php-coveralls/php-coveralls: ^2.0
- phpunit/phpunit: ^6.5 || ^7.0
This package is auto-updated.
Last update: 2024-10-13 02:28:04 UTC
README
container-interop/service-provider bridge bundle
Import service-provider
as defined in container-interop
into a Symfony application.
This is a fork of thecodingmachine/service-provider-bridge-bundle to support Symfony 4. Credits go to David NĂ©grier.
Usage
Installation
Add Bnf\Interop\ServiceProviderBridgeBundle\InteropServiceProviderBridgeBundle
in your kernel (the app/AppKernel.php
file).
AppKernel.php
public function registerBundles() { $bundles = [ ... new \Bnf\Interop\ServiceProviderBridgeBundle\InteropServiceProviderBridgeBundle() ]; ... }
Usage
You have to declare service providers manually in the constructor of the bundle.
AppKernel.php
class AppKernel extends Kernel { public function registerBundles() { $bundles = [ ... new \Bnf\Interop\ServiceProviderBridgeBundle\InteropServiceProviderBridgeBundle([ new MyServiceProvide1(), new MyServiceProvide2() ]) ]; ... } }
Alternatively, you can also pass the service provider class name. This is interesting because the service-provider bundle will not instantiate the service provider unless it is needed for a service. You can therefore improve performances of your application.
AppKernel.php
public function registerBundles() { $bundles = [ ... new \Bnf\Interop\ServiceProviderBridgeBundle\InteropServiceProviderBridgeBundle([ MyServiceProvide1::class, MyServiceProvide2::class ]) ]; ... }
Finally, if you need to pass parameters to the constructors of the service providers, you can do this by passing an array:
AppKernel.php
public function registerBundles() { $bundles = [ ... new \Bnf\Interop\ServiceProviderBridgeBundle\InteropServiceProviderBridgeBundle([ [ MyServiceProvide1::class, [ "param1", "param2" ] ], [ MyServiceProvide2::class, [ 42 ] ], ]) ]; ... }