Skip to content

Commit 3895d73

Browse files
Add integration with symfony/ux-turbo
1 parent 5b594f7 commit 3895d73

File tree

4 files changed

+24
-2
lines changed

4 files changed

+24
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ CHANGELOG
55
-----
66

77
* Add `mercure.publisher` tag on publisher services
8+
* Add integration with `symfony/ux-turbo`
89

910
0.2.6
1011
-----

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Copyright (c) 2018 Kévin Dunglas
1+
Copyright (c) 2021 Kévin Dunglas
22

33
Permission is hereby granted, free of charge, to any person obtaining a copy
44
of this software and associated documentation files (the "Software"), to deal

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
},
3232
"extra": {
3333
"branch-alias": {
34-
"dev-main": "0.3.x-dev"
34+
"dev-main": "0.2.x-dev"
3535
}
3636
},
3737
"config": {

src/DependencyInjection/MercureExtension.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@
4141
use Symfony\Component\Mercure\Publisher;
4242
use Symfony\Component\Mercure\PublisherInterface;
4343
use Symfony\Component\Stopwatch\Stopwatch;
44+
use Symfony\UX\Turbo\Bridge\Mercure\Broadcaster;
45+
use Symfony\UX\Turbo\Bridge\Mercure\TurboStreamListenRenderer;
46+
4447

4548
/**
4649
* @author Kévin Dunglas <dunglas@gmail.com>
@@ -201,6 +204,24 @@ public function load(array $configs, ContainerBuilder $container)
201204

202205
$traceableHubs[$name] = new Reference("$hubId.traceable");
203206
}
207+
208+
if (\PHP_VERSION_ID >= 80000 && class_exists(Broadcaster::class)) {
209+
$container->register("turbo.mercure.{$name}.renderer", TurboStreamListenRenderer::class)
210+
->addArgument(new Reference($hubId))
211+
->addArgument(new Reference('webpack_encore.twig_stimulus_extension'))
212+
->addArgument(new Reference('turbo.id_accessor'))
213+
->addTag('turbo.renderer.stream_listen', ['transport' => $name]);
214+
215+
if ($defaultHubName === $name && 'default' !== $name) {
216+
$container->getDefinition("turbo.mercure.{$name}.renderer")
217+
->addTag('turbo.renderer.stream_listen', ['transport' => 'default']);
218+
}
219+
220+
$container->register("turbo.mercure.{$name}.broadcaster", Broadcaster::class)
221+
->addArgument($name)
222+
->addArgument(new Reference($hubId))
223+
->addTag('turbo.broadcaster');
224+
}
204225
}
205226

206227
if ($enableProfiler) {

0 commit comments

Comments
 (0)