dwo / tagged_services
find tagged services via service configuration
Installs: 6 537
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=5.3.0
- pimple/pimple: ~3.0
- symfony/dependency-injection: >=2.3@stable
Requires (Dev)
- phpunit/phpunit: ~3.7.0
This package is not auto-updated.
Last update: 2023-04-01 09:57:39 UTC
README
============== TaggedServices
Find and use your tagged services via service configuration instead of building compiler passes every time.
Installation
=================
Add the CompilerPass to your AppKernel or a Bundle.
#AppKernel.php protected function buildContainer() { $container = parent::buildContainer(); $container->addCompilerPass(new TaggedServicesPass()); }
or to your Bundle
#FooBundle.php protected function build(ContainerBuilder $container) { parent::build($container); $container->addCompilerPass(new TaggedServicesPass()); }
Tag your services
=====================
Tag your services with your own tag as usual and give them an name with the 'type' parameter.
#services.yml services: my.service.foo: class: My\Service\Foo tags: - {name: "my.services", type: "foo"} my.service.bar: class: My\Service\Bar tags: - {name: "my.services", type: "bar"}
Use your tagged services
============================
Now add the 'tagged_services' tag with the 'find_tag' parameter to the service that gets injected all tagged services.
#services.yml services: my.service.container: class: My\Service\MyServiceContainer arguments: [[]] tags: - { name: 'tagged_services', find_tag: 'my.services' }
Now your MyServiceContainer will get a array with all tagged services.
#MyServiceContainer.php class MyServiceContainer { private $myServices = array(); private $myFooService; function __construct(array $myServices) { $this->myServices = $myServices; $this->myFooService = $myServices['foo']; } }