首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Symfony 4,get Logger,get Doctrine,get Rabbit of the controller

Symfony 4,get Logger,get Doctrine,get Rabbit of the controller
EN

Stack Overflow用户
提问于 2019-12-09 17:55:29
回答 1查看 46关注 0票数 0

在Symfony 3.3中,我可以在控制器上这样做:

代码语言:javascript
运行
复制
$sendEmailManager = new SendEmailManager($this->container);

在管理器中:

代码语言:javascript
运行
复制
private $ container;
public function __construct(ContainerInterface $ container) {
$this->container = $container;
}

我可以在所有方法中使用它:

代码语言:javascript
运行
复制
$logger = $ this->container->get('logger');
$em = $this->container->get('doctrine')->getManager();
$container->get('old_sound_rabbit_mq.producer_email_text_producer')->publish(json_encode($ dataToRabbit));

我如何在Symfony 4.4中做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2019-12-09 19:18:28

您可以按如下方式注入所需的依赖项:

代码语言:javascript
运行
复制
class SendEmailManager {
    private $em;
    private $logger;

    public function __construct(EntityManagerInterface $em, LoggerInterface $logger, [...]) { // As many as you want..
        $this->em = $em;
        $this->logger = $logger;
    }
}

然后,在你的控制器中,你可以注入那个类。

在您的services.yml中,您应该将自动装配设置为true,因为这样,symfony会将所有类注册为服务。

希望能有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59246334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档