|
27 | 27 | use Symfony\Component\Mercure\Debug\TraceableHub; |
28 | 28 | use Symfony\Component\Mercure\Debug\TraceablePublisher; |
29 | 29 | use Symfony\Component\Mercure\Discovery; |
| 30 | +use Symfony\Component\Mercure\EventSubscriber\SetCookieSubscriber; |
30 | 31 | use Symfony\Component\Mercure\Hub; |
31 | 32 | use Symfony\Component\Mercure\HubInterface; |
32 | 33 | use Symfony\Component\Mercure\HubRegistry; |
|
40 | 41 | use Symfony\Component\Mercure\Messenger\UpdateHandler; |
41 | 42 | use Symfony\Component\Mercure\Publisher; |
42 | 43 | use Symfony\Component\Mercure\PublisherInterface; |
| 44 | +use Symfony\Component\Mercure\Twig\MercureExtension as TwigMercureExtension; |
43 | 45 | use Symfony\Component\Stopwatch\Stopwatch; |
44 | 46 | use Symfony\UX\Turbo\Bridge\Mercure\Broadcaster; |
45 | 47 | use Symfony\UX\Turbo\Bridge\Mercure\TurboStreamListenRenderer; |
| 48 | +use Twig\Environment; |
46 | 49 |
|
47 | 50 | /** |
48 | 51 | * @author Kévin Dunglas <[email protected]> |
@@ -255,10 +258,21 @@ public function load(array $configs, ContainerBuilder $container) |
255 | 258 | ->addArgument($config['default_cookie_lifetime']) |
256 | 259 | ; |
257 | 260 |
|
258 | | - $container->register(Discovery::class, Discovery::class) |
| 261 | + $container->register(Discovery::class) |
259 | 262 | ->addArgument(new Reference(HubRegistry::class)) |
260 | 263 | ; |
261 | 264 |
|
| 265 | + if (class_exists(SetCookieSubscriber::class)) { |
| 266 | + $container->register(SetCookieSubscriber::class) |
| 267 | + ->addTag('kernel.event_subscriber', ['priority' => -10]); |
| 268 | + } |
| 269 | + |
| 270 | + if (class_exists(TwigMercureExtension::class) && class_exists(Environment::class)) { |
| 271 | + $container->register(TwigMercureExtension::class) |
| 272 | + ->setArguments([new Reference(HubRegistry::class), new Reference(Authorization::class), new Reference('request_stack')]) |
| 273 | + ->addTag('twig.extension'); |
| 274 | + } |
| 275 | + |
262 | 276 | // TODO: remove these parameters in the next release. |
263 | 277 | $container->setParameter('mercure.hubs', $hubUrls); |
264 | 278 | $container->setParameter('mercure.default_hub', $defaultHubUrl); |
|
0 commit comments