yokai / dependency-injection
Provide util classes to manipulate Dependency Injection in Symfony
Installs: 75 766
Dependents: 2
Suggesters: 0
Security: 0
Stars: 3
Watchers: 4
Forks: 0
Open Issues: 0
Requires
- php: >=5.5.9
- symfony/dependency-injection: ^2.7|^3.0|^4.0|^5.0|^6.0|^7.0
Requires (Dev)
- phpunit/phpunit: ^5.7
This package is auto-updated.
Last update: 2024-11-05 09:06:33 UTC
README
Installation
$ php composer.phar require yokai/dependency-injection
Compiler Pass
<?php namespace AppBundle; use Yokai\DependencyInjection\CompilerPass\ArgumentRegisterTaggedServicesCompilerPass; use Yokai\DependencyInjection\CompilerPass\AdderRegisterTaggedServicesCompilerPass; use Yokai\DependencyInjection\CompilerPass\SetterRegisterTaggedServicesCompilerPass; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\HttpKernel\Bundle\Bundle; class AppBundle extends Bundle { public function build(ContainerBuilder $container) { $container ->addCompilerPass( new ArgumentRegisterTaggedServicesCompilerPass( 'some_service_id', 'some_tag_name', 'An\Optional\Interface\To\Check', 0 ) ) ->addCompilerPass( new AdderRegisterTaggedServicesCompilerPass( 'some_service_id', 'some_tag_name', 'An\Optional\Interface\To\Check', 'addDependency' ) ) ->addCompilerPass( new SetterRegisterTaggedServicesCompilerPass( 'some_service_id', 'some_tag_name', 'An\Optional\Interface\To\Check', 'setDependencies' ) ) ; } }
ArgumentRegisterTaggedServicesCompilerPass
This compiler pass will :
- check for the service (first argument) existence (throw
LogicException
if not) - find services tagged with tag (second argument)
- if provided, check every service against an interface (third argument) (throw
LogicException
if not) - sort these references base on a
priority
attribute - replace an argument (fourth argument) of your service definition with the sorted references
AdderRegisterTaggedServicesCompilerPass
This compiler pass will :
- check for the service (first argument) existence (throw
LogicException
if not) - find services tagged with tag (second argument)
- if provided, check every service against an interface (third argument) (throw
LogicException
if not) - sort these references base on a
priority
attribute - call a method (fourth argument) for each sorted references
SetterRegisterTaggedServicesCompilerPass
This compiler pass will :
- check for the service (first argument) existence (throw
LogicException
if not) - find services tagged with tag (second argument)
- if provided, check every service against an interface (third argument) (throw
LogicException
if not) - sort these references base on a
priority
attribute - call a method (fourth argument) with all sorted references
MIT License
License can be found here.
Authors
The bundle was originally created by Yann Eugoné. See the list of contributors.