From cbfbf9b47d46fa036777768e6f99bd6db279ae93 Mon Sep 17 00:00:00 2001 From: fliespl <a.rzadkowolski@gmail.com> Date: Wed, 16 Oct 2019 10:32:23 +0200 Subject: [PATCH] Fallback to jms_serializer if avaialable and notify user about error jms_serializer in v2 dropped usage of "serializer" alias. It means it might not be available if you don't use default symfony serializer. Also added exception to show so that user it immediately aware that it will not log user info inside rollbar. --- Factories/RollbarHandlerFactory.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Factories/RollbarHandlerFactory.php b/Factories/RollbarHandlerFactory.php index b31c548..9705db2 100755 --- a/Factories/RollbarHandlerFactory.php +++ b/Factories/RollbarHandlerFactory.php @@ -35,15 +35,24 @@ public function __construct(ContainerInterface $container) $config['person_fn'] = function () use ($container) { try { $token = $container->get('security.token_storage')->getToken(); - + if ($token) { $user = $token->getUser(); - $serializer = $container->get('serializer'); + if($container->has('serializer')) { + $serializer = $container->get('serializer'); + } elseif($container->has('jms_serializer')) { + $serializer = $container->get('jms_serializer'); + } else { + throw new ServiceNotFoundException('serializer'); + } $person = \json_decode($serializer->serialize($user, 'json'), true); return $person; } } catch (\Exception $exception) { - // Ignore + // Ignore all except serializer + if($exception instanceof ServiceNotFoundException) { + throw $exception; + } } }; }