gpt4 book ai didi

php - 如何在 Symfony 的另一个服务中注入(inject)一个服务?

转载 作者:IT王子 更新时间:2023-10-28 23:45:36 25 4
gpt4 key购买 nike

我正在尝试在另一项服务中使用日志记录服务以排除该服务的故障。

我的 config.yml 看起来像这样:

services:
userbundle_service:
class: Main\UserBundle\Controller\UserBundleService
arguments: [@security.context]

log_handler:
class: %monolog.handler.stream.class%
arguments: [ %kernel.logs_dir%/%kernel.environment%.jini.log ]


logger:
class: %monolog.logger.class%
arguments: [ jini ]
calls: [ [pushHandler, [@log_handler]] ]

这在 Controller 等方面工作得很好。但是当我在其他服务中使用它时我没有输出。

有什么建议吗?

最佳答案

您将服务 ID 作为参数传递给服务的构造函数或 setter 。

假设您的其他服务是 userbundle_service:

userbundle_service:
class: Main\UserBundle\Controller\UserBundleService
arguments: [@security.context, @logger]

现在 Logger 被传递给 UserBundleService 构造函数,前提是您正确更新它,例如

protected $securityContext;
protected $logger;

public function __construct(SecurityContextInterface $securityContext, Logger $logger)
{
$this->securityContext = $securityContext;
$this->logger = $logger;
}

关于php - 如何在 Symfony 的另一个服务中注入(inject)一个服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11801541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com