我正在尝试在另一项服务中使用日志记录服务以排除该服务的故障。
我的 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/