@@ -74,13 +74,16 @@ service is marked as autowired:
7474 .. code-block :: php
7575
7676 use Acme\TwitterClient;
77- use Symfony\Component\DependencyInjection\Definition;
7877
7978 // ...
80- $definition = new Definition(TwitterClient::class);
81- $definition->setAutowired(true);
8279
83- $container->setDefinition('twitter_client', $definition);
80+ $container->autowire('twitter_client', TwitterClient::class);
81+
82+
83+ .. versionadded :: 3.3
84+ The method ``ContainerBuilder::autowire() `` was introduced in Symfony 3.3.
85+ Prior to version 3.3, you needed to use the ``Definition::setAutowired() ``
86+ method.
8487
8588The autowiring subsystem will detect the dependencies of the ``TwitterClient ``
8689class by parsing its constructor. For instance it will find here an instance of
@@ -210,14 +213,10 @@ subsystem isn't able to find itself the interface implementation to register:
210213 .. code-block :: php
211214
212215 use Acme\TwitterClient;
213- use Symfony\Component\DependencyInjection\Definition;
214216
215217 // ...
216218 $container->register('rot13_transformer', 'Acme\Rot13Transformer');
217-
218- $clientDefinition = new Definition(TwitterClient::class);
219- $clientDefinition->setAutowired(true);
220- $container->setDefinition('twitter_client', $clientDefinition);
219+ $container->autowire('twitter_client', TwitterClient::class);
221220
222221 The autowiring subsystem detects that the ``rot13_transformer `` service implements
223222the ``TransformerInterface `` and injects it automatically. Even when using
@@ -354,24 +353,15 @@ and a Twitter client using it:
354353 use Acme\TwitterClient;
355354 use Acme\UppercaseTransformer;
356355 use Symfony\Component\DependencyInjection\Reference;
357- use Symfony\Component\DependencyInjection\Definition;
358356
359357 // ...
360358 $container->register('rot13_transformer', Rot13Transformer::class);
361359 $container->setAlias(TransformerInterface::class, 'rot13_transformer')
362360
363- $clientDefinition = new Definition(TwitterClient::class);
364- $clientDefinition->setAutowired(true);
365- $container->setDefinition('twitter_client', $clientDefinition);
366-
367- $uppercaseDefinition = new Definition(UppercaseTransformer::class);
368- $uppercaseDefinition->setAutowired(true);
369- $container->setDefinition('uppercase_transformer', $uppercaseDefinition);
370-
371- $uppercaseClientDefinition = new Definition(TwitterClient::class, array(
372- new Reference('uppercase_transformer'),
373- ));
374- $container->setDefinition('uppercase_twitter_client', $uppercaseClientDefinition);
361+ $container->autowire('twitter_client', TwitterClient::class);
362+ $container->autowire('uppercase_transformer', UppercaseTransformer::class);
363+ $container->register('uppercase_twitter_client', TwitterClient::class)
364+ ->addArgument(new Reference('uppercase_transformer'));
375365
376366 This deserves some explanations. You now have two services implementing the
377367``TransformerInterface ``. The autowiring subsystem cannot guess which one
0 commit comments