Я хочу зарегистрировать все хранилища Doctrine как сервисы
Я нашел этот подход: Как настроить внедрение зависимостей для класса репозитория в Symfony 3
Но таким образом я должен зарегистрировать каждый репозиторий вручную.
Я хотел бы создать некоторые Сервисная фабрика это создало бы для меня экземпляры репозиториев, дав только имя класса репозитория.
Что-то вроде этого:
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
но документы Symfony ничего не говорят о том, как передать имя сервиса, которое вы хотите создать (если это возможно) в этой фабрике
Задача ещё не решена.
Других решений пока нет …