Пропуск компилятора 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