在Symfony 3.3中,我可以在控制器上这样做:
$sendEmailManager = new SendEmailManager($this->container);
在管理器中:
private $ container;
public function __construct(ContainerInterface $ container) {
$this->container = $container;
}
我可以在所有方法中使用它:
$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中做到这一点?
发布于 2019-12-09 19:18:28
您可以按如下方式注入所需的依赖项:
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会将所有类注册为服务。
希望能有所帮助
https://stackoverflow.com/questions/59246334
复制相似问题