【问题标题】:monolog custom service access from a service从服务访问独白自定义服务
【发布时间】:2015-09-03 19:40:12
【问题描述】:

请问,有没有一种快速的方法可以在 an_other_service 服务中提供独白服务,而无需将独白服务引用作为来自控制器的参数传递?

正是我创建了一个自定义独白通道,该通道被写入特定的日志文件。通常在控制器中,我会通过

获得我的独白自定义服务
$this->logger = $this->container->get('monolog.logger.test');

现在,当我调用 an_other_service 服务的方法时,我的自定义日志服务将记录器的实例作为参数传递。 在 an_other_service 服务中是否有明确的方法可以访问自定义独白?和正常的独白服务?

【问题讨论】:

    标签: php symfony monolog


    【解决方案1】:

    在你的服务中注入服务。

    class ServiceCustom 
    {
        private $logger;
    
        public function setLogger(YourLoggerClass $logger)
        {
            $this->logger= $logger;
        }
    
        // ...
    }
    
    
    services:
        service_custom:
            class:     Namespace/ServiceCustom
            arguments: []
            calls:
                - [setLogger, ["@monolog.logger.test"]]
    

    Documentation

    【讨论】:

    • 感谢您的回答,但在我的情况下这是不可能的,因为我正在尝试在存在预定义类和服务的现有项目中使用独白。在扩展其他类的类的构造函数中添加这样一行变得太复杂了……而且我没有清楚该项目代码的所有服务定义部分。
    • 如果符合你的需求,你可以使用简单的方法注入服务,看我的编辑
    猜你喜欢
    • 2018-02-12
    • 1970-01-01
    • 2019-03-12
    • 2016-06-01
    • 1970-01-01
    • 2016-09-02
    • 2021-05-18
    • 1970-01-01
    • 2022-11-10
    相关资源
    最近更新 更多