From ce1630167183e24043c8068acf1a593ca480ef25 Mon Sep 17 00:00:00 2001 From: Alexandre Daubois Date: Sun, 8 Jan 2023 20:24:09 +0100 Subject: [PATCH] [DependencyInjection] Add #[Autoconfigure] and #[AutoconfigureTag] documentation --- service_container/tags.rst | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/service_container/tags.rst b/service_container/tags.rst index 9de74dc922c..f840059afeb 100644 --- a/service_container/tags.rst +++ b/service_container/tags.rst @@ -117,6 +117,29 @@ If you want to apply tags automatically for your own services, use the ->tag('app.custom_tag'); }; +It is also possible to use the ``#[AutoconfigureTag]`` attribute directly on the +base class or interface:: + + // src/Security/CustomInterface.php + namespace App\Security; + + use Symfony\Component\DependencyInjection\Attribute\AutoconfigureTag; + + #[AutoconfigureTag('app.custom_tag')] + interface CustomInterface + { + // ... + } + +.. tip:: + + If you need more capabilities to autoconfigure instances of your base class + like their laziness, their bindings or their calls for example, you may rely + on the :class:`Symfony\\Component\\DependencyInjection\\Attribute\\Autoconfigure` attribute. + +.. versionadded:: 5.3 + + The ``#[Autoconfigure]`` and ``#[AutoconfigureTag]`` attributes were introduced in Symfony 5.3. For more advanced needs, you can define the automatic tags using the :method:`Symfony\\Component\\DependencyInjection\\ContainerBuilder::registerForAutoconfiguration` method.