From d4a87cc41965e002c122157e2ecced6493ccf69d Mon Sep 17 00:00:00 2001 From: Atsuhiro Kubo Date: Wed, 27 May 2020 11:14:03 +0900 Subject: [PATCH] add support for the new 'session' service definition on Symfony 3.4.39 or later --- .../Compiler/ReplaceSessionDefinitionPass.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/DependencyInjection/Compiler/ReplaceSessionDefinitionPass.php b/src/DependencyInjection/Compiler/ReplaceSessionDefinitionPass.php index 1ef9759..bb1203b 100644 --- a/src/DependencyInjection/Compiler/ReplaceSessionDefinitionPass.php +++ b/src/DependencyInjection/Compiler/ReplaceSessionDefinitionPass.php @@ -22,7 +22,19 @@ class ReplaceSessionDefinitionPass implements CompilerPassInterface */ public function process(ContainerBuilder $container) { - $container->setDefinition('session', $container->getDefinition('phpmentors_pageflower.conversational_session')); + $conversationalSessionDefinition = $container->getDefinition('phpmentors_pageflower.conversational_session'); + $sessionDefinition = $container->getDefinition('session'); + + /* + * As of version 3.4.39, the 'session.attribute_bag' and 'session.flash_bag' arguments have been removed from the 'session' definition. + * See https://github.com/symfony/symfony/pull/36063 for more details. + */ + if (count($sessionDefinition->getArguments()) == 1) { + $conversationalSessionDefinition->replaceArgument(1, null); + $conversationalSessionDefinition->replaceArgument(2, null); + } + + $container->setDefinition('session', $conversationalSessionDefinition); $container->removeDefinition('phpmentors_pageflower.conversational_session'); } }