繁体   English   中英

Symfony 3.3 DI。 在服务工厂内部访问服务名称(类名称)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM