[英]Symfony 3.3 DI. Access a service name (class name) inside service factory
我想将所有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的文档没有提及如何传递要在该工厂中实例化的服务名称(如果可能的话)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.