New in Symfony 3.4: debug:autowiring command
Warning: This post is about an unsupported Symfony version. Some of this information may be out of date. Read the most recent Symfony Docs.
Service autowiring was introduced as an experimental feature in Symfony 2.8. In the following Symfony versions, we improved it so much that we decided to enable it by default in Symfony 3.3.
One of the main features of autowiring is that you can type-hint the arguments of the class constructors or controller methods and Symfony automatically injects the services associated with those type-hinted classes.
This saves you most of the previously needed service configuration, but requires
you to know the right type-hint to use. In previous Symfony versions, you could
debug:container --types command to get that information. However,
in Symfony 3.4 we added a new dedicated
debug:autowiring command which is
much easier to remember and provides the same information more nicely.
For example, if you run this command in the Symfony Demo application, you'll get the following results:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
$ ./bin/console debug:autowiring Autowirable Services ==================== The following classes & interfaces can be used as type-hints when autowiring: App\Command\AddUserCommand App\Command\DeleteUserCommand App\Command\ListUsersCommand App\Controller\Admin\BlogController App\Controller\BlogController App\Controller\SecurityController App\EventSubscriber\CheckRequirementsSubscriber App\EventSubscriber\CommentNotificationSubscriber ... Symfony\Component\Validator\Validator\ValidatorInterface alias to debug.validator Twig\Environment alias to twig
You can also provide an argument to filter the list of autowirable services:
1 2 3 4 5 6 7 8 9 10 11 12
$ ./bin/console debug:autowiring log Autowirable Services ==================== The following classes & interfaces can be used as type-hints when autowiring: (only showing classes/interfaces matching log): App\Controller\Admin\BlogController App\Controller\BlogController Psr\Log\LoggerInterface alias to monolog.logger
Help the Symfony project!
As with any Open-Source project, contributing code or documentation is the most common way to help, but we also have a wide range of sponsoring opportunities.
Comments are closed.
To ensure that comments stay relevant, they are closed for old posts.