<?php
/*
* This file is part of the Mercure Component project.
*
* (c) Kévin Dunglas <dunglas@gmail.com>
*
* 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 <dunglas@gmail.com>
*/
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);
}
}