Пропуск компилятора Symfony: я хочу добавить вызов метода в сервис Logger

Я хочу добавить вызов метода (функция setTimezone) к сервису Logger.

вот функция: https://github.com/Seldaek/monolog/blob/1.x/src/Monolog/Logger.php

Тогда как я могу это сделать?

Я хочу установить часовой пояс UTC каждый раз, когда внедряю эту услугу.

я пытался

public function process(ContainerBuilder $container)
{
    $logger = $container->getDefinition('goobing_core.logging.logger');
    $logger->addMethodCall('setTimezone', [new \DateTimeZone('UTC')]);
}

RuntimeException в строке XmlDumper.php 375. Невозможно создать дамп контейнера службы, если параметр является объектом или ресурсом.

2 ответа

Попробуй это:

$utcTimeDefinition = new Definition(\DateTimeZone::class, ['UTC']);
$logger = $container->getDefinition('goobing_core.logging.logger');
$logger->addMethodCall('setTimezone', [$utcTimeDefinition]);

Вы должны быть в состоянии сделать это с build метод в вашем комплекте, см. документацию здесь http://symfony.com/doc/current/service_container/compiler_passes.html

Другие вопросы по тегам