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

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

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

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

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

я пытался

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

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

1

Решение

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

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

Другие решения

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

-1

По вопросам рекламы ammmcru@yandex.ru