This bundle turns on autowire for you!
It turns this:
# app/config/config.yml
services:
PriceCalculator:
autowire: true
ProductRepository:
autowire: true
UserFactory:
autowire: true
Into this:
# app/config/config.yml
services:
PriceCalculator: ~
ProductRepository: ~
UserFactory: ~
composer require symplify/default-autowire
Add bundle to AppKernel.php
:
final class AppKernel extends Kernel
{
public function registerBundles(): array
{
$bundles = [
new Symplify\DefaultAutowire\SymplifyDefaultAutowireBundle(),
// ...
];
}
}
And that's it!
In case you have multiple connections, entity managers or decorated service, you can set default preferred service (name) for each type (class or interface).
To make it easier for you, there are few default values. You can change them or add new ones.
# app/config/cofing.yml
symplify_default_autowire:
autowire_types:
Doctrine\ORM\EntityManager: 'doctrine.orm.default_entity_manager'
Doctrine\ORM\EntityManagerInterface: 'doctrine.orm.default_entity_manager'
Doctrine\Portability\Connection: 'database_connection'
Symfony\Component\EventDispatcher\EventDispatcher: 'event_dispatcher'
Symfony\Component\EventDispatcher\EventDispatcherInterface: 'event_dispatcher'
Symfony\Component\Translation\TranslatorInterface: 'translator'
Send issue or pull-request to main repository.