I want to register all Doctrine repositories as services
I found this approach: How to configure dependency injection for repository class in symfony 3
But this way I have to register every single one repository manually.
I'd like to create some Service Factory that would instantiate repositories for me given just a repository class name.
Something like this:
namespace AppBundle\Service;
use Doctrine\ORM\EntityManagerInterface;
class RepositoryFactory
{
/**
* @var EntityManagerInterface
*/
private $manager;
public function __construct(EntityManagerInterface $manager)
{
$this->manager = $manager;
}
public function getRepository(string $repositoryClass)
{
// do some magic that somehow obtaining actual repo
return $repo;
}
}
service.yml
AppBundle\Service\RepositoryFactory:
autowire: true
but Symfony's docs say nothing about how to pass service name that you want to instantiate (if it's even possible) in this factory