* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ declare(strict_types=1); namespace Symfony\Bundle\MercureBundle; use Symfony\Bundle\MercureBundle\DependencyInjection\CompilerPass\StimulusHelperPass; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\Compiler\PassConfig; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\HttpKernel\Bundle\Bundle; use Symfony\Component\Mercure\Authorization; /** * @author Kévin Dunglas */ final class MercureBundle extends Bundle { public function build(ContainerBuilder $container): void { parent::build($container); $container->addCompilerPass(new StimulusHelperPass()); $container->addCompilerPass(new class() implements CompilerPassInterface { public function process(ContainerBuilder $container): void { if (!$container->hasDefinition(Authorization::class)) { return; } $definition = $container->getDefinition(Authorization::class); if ( null === $definition->getArgument(1) && $container->hasParameter('session.storage.options') ) { $definition->setArgument( 1, $container->getParameter('session.storage.options')['cookie_lifetime'] ?? null ); } } }, PassConfig::TYPE_BEFORE_REMOVING); } }