Skip to content

Commit 1424ea0

Browse files
committed
feature #160 Allowing Symfony 6 (weaverryan, kbond)
This PR was merged into the main branch. Discussion ---------- Allowing Symfony 6 | Q | A | ------------- | --- | Bug fix? | no | New feature? | yes | Tickets | None | License | MIT We have an upcoming new major version (see #141), but I think we should support Symfony 6 in a minor release before that. Cheers! Commits ------- dd97519 allowing panther2 fe122ee [TwigComponent] add test container bc layer & latest zenstruck/browser 605a7bf allowing Symfony 6
2 parents 66f3d54 + dd97519 commit 1424ea0

File tree

15 files changed

+158
-156
lines changed

15 files changed

+158
-156
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
"name": "symfony/ux",
33
"license": "MIT",
44
"require-dev": {
5-
"symfony/filesystem": "^5.2"
5+
"symfony/filesystem": "^5.2|^6.0"
66
}
77
}

src/Chartjs/composer.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@
2727
},
2828
"require": {
2929
"php": ">=7.2.5",
30-
"symfony/config": "^4.4.17|^5.0",
31-
"symfony/dependency-injection": "^4.4.17|^5.0",
32-
"symfony/http-kernel": "^4.4.17|^5.0"
30+
"symfony/config": "^4.4.17|^5.0|^6.0",
31+
"symfony/dependency-injection": "^4.4.17|^5.0|^6.0",
32+
"symfony/http-kernel": "^4.4.17|^5.0|^6.0"
3333
},
3434
"require-dev": {
35-
"symfony/framework-bundle": "^4.4.17|^5.0",
36-
"symfony/phpunit-bridge": "^5.2",
37-
"symfony/twig-bundle": "^4.4.17|^5.0",
38-
"symfony/var-dumper": "^4.4.17|^5.0"
35+
"symfony/framework-bundle": "^4.4.17|^5.0|^6.0",
36+
"symfony/phpunit-bridge": "^5.2|^6.0",
37+
"symfony/twig-bundle": "^4.4.17|^5.0|^6.0",
38+
"symfony/var-dumper": "^4.4.17|^5.0|^6.0"
3939
},
4040
"conflict": {
4141
"symfony/flex": "<1.13"

src/Cropperjs/composer.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,17 @@
2828
"require": {
2929
"php": ">=7.2.5",
3030
"intervention/image": "^2.5",
31-
"symfony/config": "^4.4.17|^5.0",
32-
"symfony/dependency-injection": "^4.4.17|^5.0",
33-
"symfony/form": "^4.4.17|^5.0",
34-
"symfony/http-kernel": "^4.4.17|^5.0",
35-
"symfony/validator": "^4.4.17|^5.0"
31+
"symfony/config": "^4.4.17|^5.0|^6.0",
32+
"symfony/dependency-injection": "^4.4.17|^5.0|^6.0",
33+
"symfony/form": "^4.4.17|^5.0|^6.0",
34+
"symfony/http-kernel": "^4.4.17|^5.0|^6.0",
35+
"symfony/validator": "^4.4.17|^5.0|^6.0"
3636
},
3737
"require-dev": {
38-
"symfony/framework-bundle": "^4.4.17|^5.0",
39-
"symfony/phpunit-bridge": "^5.2",
40-
"symfony/twig-bundle": "^4.4.17|^5.0",
41-
"symfony/var-dumper": "^4.4.17|^5.0"
38+
"symfony/framework-bundle": "^4.4.17|^5.0|^6.0",
39+
"symfony/phpunit-bridge": "^5.2|^6.0",
40+
"symfony/twig-bundle": "^4.4.17|^5.0|^6.0",
41+
"symfony/var-dumper": "^4.4.17|^5.0|^6.0"
4242
},
4343
"conflict": {
4444
"symfony/flex": "<1.13"

src/Dropzone/composer.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,16 @@
2727
},
2828
"require": {
2929
"php": ">=7.2.5",
30-
"symfony/config": "^4.4.17|^5.0",
31-
"symfony/dependency-injection": "^4.4.17|^5.0",
32-
"symfony/form": "^4.4.17|^5.0",
33-
"symfony/http-kernel": "^4.4.17|^5.0"
30+
"symfony/config": "^4.4.17|^5.0|^6.0",
31+
"symfony/dependency-injection": "^4.4.17|^5.0|^6.0",
32+
"symfony/form": "^4.4.17|^5.0|^6.0",
33+
"symfony/http-kernel": "^4.4.17|^5.0|^6.0"
3434
},
3535
"require-dev": {
36-
"symfony/framework-bundle": "^4.4.17|^5.0",
37-
"symfony/phpunit-bridge": "^5.2",
38-
"symfony/twig-bundle": "^4.4.17|^5.0",
39-
"symfony/var-dumper": "^4.4.17|^5.0"
36+
"symfony/framework-bundle": "^4.4.17|^5.0|^6.0",
37+
"symfony/phpunit-bridge": "^5.2|^6.0",
38+
"symfony/twig-bundle": "^4.4.17|^5.0|^6.0",
39+
"symfony/var-dumper": "^4.4.17|^5.0|^6.0"
4040
},
4141
"extra": {
4242
"branch-alias": {

src/LazyImage/composer.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,16 @@
2828
"require": {
2929
"php": ">=7.2.5",
3030
"kornrunner/blurhash": "^1.1",
31-
"symfony/config": "^4.4.17|^5.0",
32-
"symfony/http-kernel": "^4.4.17|^5.0",
33-
"symfony/dependency-injection": "^4.4.17|^5.0"
31+
"symfony/config": "^4.4.17|^5.0|^6.0",
32+
"symfony/http-kernel": "^4.4.17|^5.0|^6.0",
33+
"symfony/dependency-injection": "^4.4.17|^5.0|^6.0"
3434
},
3535
"require-dev": {
3636
"intervention/image": "^2.5",
37-
"symfony/framework-bundle": "^4.4.17|^5.0",
38-
"symfony/phpunit-bridge": "^5.2",
39-
"symfony/twig-bundle": "^4.4.17|^5.0",
40-
"symfony/var-dumper": "^4.4.17|^5.0"
37+
"symfony/framework-bundle": "^4.4.17|^5.0|^6.0",
38+
"symfony/phpunit-bridge": "^5.2|^6.0",
39+
"symfony/twig-bundle": "^4.4.17|^5.0|^6.0",
40+
"symfony/var-dumper": "^4.4.17|^5.0|^6.0"
4141
},
4242
"extra": {
4343
"branch-alias": {

src/LiveComponent/composer.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,18 @@
3030
"symfony/ux-twig-component": "^1.4"
3131
},
3232
"require-dev": {
33-
"symfony/framework-bundle": "^4.4|^5.0",
34-
"symfony/dependency-injection": "^4.4.2|^5.0",
35-
"symfony/twig-bundle": "^4.4|^5.0",
36-
"symfony/security-csrf": "^4.4|^5.0",
37-
"symfony/serializer": "^4.4|^5.0",
38-
"symfony/validator": "^4.4|^5.0",
39-
"symfony/phpunit-bridge": "^5.2",
33+
"symfony/framework-bundle": "^4.4|^5.0|^6.0",
34+
"symfony/dependency-injection": "^4.4.2|^5.0|^6.0",
35+
"symfony/twig-bundle": "^4.4|^5.0|^6.0",
36+
"symfony/security-csrf": "^4.4|^5.0|^6.0",
37+
"symfony/serializer": "^4.4|^5.0|^6.0",
38+
"symfony/validator": "^4.4|^5.0|^6.0",
39+
"symfony/phpunit-bridge": "^5.2|^6.0",
4040
"doctrine/annotations": "^1.0",
4141
"doctrine/doctrine-bundle": "^2.0",
4242
"doctrine/orm": "^2.7",
4343
"zenstruck/foundry": "^1.10",
44-
"zenstruck/browser": "^0.5.0"
44+
"zenstruck/browser": "^0.9.1"
4545
},
4646
"extra": {
4747
"branch-alias": {
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
namespace Symfony\UX\LiveComponent\Tests;
4+
5+
use Symfony\Component\DependencyInjection\ContainerInterface;
6+
7+
/**
8+
* Enables using the getContainer() method in Symfony < 5.3.
9+
*
10+
* @author Kevin Bond <[email protected]>
11+
*/
12+
trait ContainerBC
13+
{
14+
protected static function getContainer(): ContainerInterface
15+
{
16+
if (!method_exists(parent::class, 'getContainer')) {
17+
if (!static::$booted) {
18+
static::bootKernel();
19+
}
20+
21+
return self::$container;
22+
}
23+
24+
return parent::getContainer();
25+
}
26+
}

src/LiveComponent/tests/Functional/EventListener/LiveComponentSubscriberTest.php

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
1515
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
1616
use Symfony\UX\LiveComponent\LiveComponentHydrator;
17+
use Symfony\UX\LiveComponent\Tests\ContainerBC;
1718
use Symfony\UX\LiveComponent\Tests\Fixture\Component\Component1;
1819
use Symfony\UX\LiveComponent\Tests\Fixture\Component\Component2;
1920
use Symfony\UX\LiveComponent\Tests\Fixture\Entity\Entity1;
@@ -29,19 +30,18 @@
2930
*/
3031
final class LiveComponentSubscriberTest extends KernelTestCase
3132
{
33+
use ContainerBC;
3234
use Factories;
3335
use HasBrowser;
3436
use ResetDatabase;
3537

3638
public function testCanRenderComponentAsHtmlOrJson(): void
3739
{
38-
self::bootKernel();
39-
4040
/** @var LiveComponentHydrator $hydrator */
41-
$hydrator = self::$container->get('ux.live_component.component_hydrator');
41+
$hydrator = self::getContainer()->get('ux.live_component.component_hydrator');
4242

4343
/** @var ComponentFactory $factory */
44-
$factory = self::$container->get('ux.twig_component.component_factory');
44+
$factory = self::getContainer()->get('ux.twig_component.component_factory');
4545

4646
/** @var Component1 $component */
4747
$component = $factory->create('component1', [
@@ -80,13 +80,11 @@ public function testCanRenderComponentAsHtmlOrJson(): void
8080

8181
public function testCanExecuteComponentAction(): void
8282
{
83-
self::bootKernel();
84-
8583
/** @var LiveComponentHydrator $hydrator */
86-
$hydrator = self::$container->get('ux.live_component.component_hydrator');
84+
$hydrator = self::getContainer()->get('ux.live_component.component_hydrator');
8785

8886
/** @var ComponentFactory $factory */
89-
$factory = self::$container->get('ux.twig_component.component_factory');
87+
$factory = self::getContainer()->get('ux.twig_component.component_factory');
9088

9189
/** @var Component2 $component */
9290
$component = $factory->create('component2');
@@ -183,13 +181,11 @@ public function testInvalidCsrfTokenForComponentActionFails(): void
183181

184182
public function testBeforeReRenderHookOnlyExecutedDuringAjax(): void
185183
{
186-
self::bootKernel();
187-
188184
/** @var LiveComponentHydrator $hydrator */
189-
$hydrator = self::$container->get('ux.live_component.component_hydrator');
185+
$hydrator = self::getContainer()->get('ux.live_component.component_hydrator');
190186

191187
/** @var ComponentFactory $factory */
192-
$factory = self::$container->get('ux.twig_component.component_factory');
188+
$factory = self::getContainer()->get('ux.twig_component.component_factory');
193189

194190
/** @var Component2 $component */
195191
$component = $factory->create('component2');
@@ -208,13 +204,11 @@ public function testBeforeReRenderHookOnlyExecutedDuringAjax(): void
208204

209205
public function testCanRedirectFromComponentAction(): void
210206
{
211-
self::bootKernel();
212-
213207
/** @var LiveComponentHydrator $hydrator */
214-
$hydrator = self::$container->get('ux.live_component.component_hydrator');
208+
$hydrator = self::getContainer()->get('ux.live_component.component_hydrator');
215209

216210
/** @var ComponentFactory $factory */
217-
$factory = self::$container->get('ux.twig_component.component_factory');
211+
$factory = self::getContainer()->get('ux.twig_component.component_factory');
218212

219213
/** @var Component2 $component */
220214
$component = $factory->create('component2');

src/LiveComponent/tests/Integration/LiveComponentHydratorTest.php

Lines changed: 18 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
1515
use Symfony\UX\LiveComponent\LiveComponentHydrator;
16+
use Symfony\UX\LiveComponent\Tests\ContainerBC;
1617
use Symfony\UX\LiveComponent\Tests\Fixture\Component\Component1;
1718
use Symfony\UX\LiveComponent\Tests\Fixture\Component\Component2;
1819
use Symfony\UX\LiveComponent\Tests\Fixture\Component\Component3;
@@ -27,18 +28,17 @@
2728
*/
2829
final class LiveComponentHydratorTest extends KernelTestCase
2930
{
31+
use ContainerBC;
3032
use Factories;
3133
use ResetDatabase;
3234

3335
public function testCanDehydrateAndHydrateLiveComponent(): void
3436
{
35-
self::bootKernel();
36-
3737
/** @var LiveComponentHydrator $hydrator */
38-
$hydrator = self::$container->get('ux.live_component.component_hydrator');
38+
$hydrator = self::getContainer()->get('ux.live_component.component_hydrator');
3939

4040
/** @var ComponentFactory $factory */
41-
$factory = self::$container->get('ux.twig_component.component_factory');
41+
$factory = self::getContainer()->get('ux.twig_component.component_factory');
4242

4343
/** @var Component1 $component */
4444
$component = $factory->create('component1', [
@@ -73,13 +73,11 @@ public function testCanDehydrateAndHydrateLiveComponent(): void
7373

7474
public function testCanModifyWritableProps(): void
7575
{
76-
self::bootKernel();
77-
7876
/** @var LiveComponentHydrator $hydrator */
79-
$hydrator = self::$container->get('ux.live_component.component_hydrator');
77+
$hydrator = self::getContainer()->get('ux.live_component.component_hydrator');
8078

8179
/** @var ComponentFactory $factory */
82-
$factory = self::$container->get('ux.twig_component.component_factory');
80+
$factory = self::getContainer()->get('ux.twig_component.component_factory');
8381

8482
/** @var Component1 $component */
8583
$component = $factory->create('component1', [
@@ -100,13 +98,11 @@ public function testCanModifyWritableProps(): void
10098

10199
public function testCannotModifyReadonlyProps(): void
102100
{
103-
self::bootKernel();
104-
105101
/** @var LiveComponentHydrator $hydrator */
106-
$hydrator = self::$container->get('ux.live_component.component_hydrator');
102+
$hydrator = self::getContainer()->get('ux.live_component.component_hydrator');
107103

108104
/** @var ComponentFactory $factory */
109-
$factory = self::$container->get('ux.twig_component.component_factory');
105+
$factory = self::getContainer()->get('ux.twig_component.component_factory');
110106

111107
/** @var Component1 $component */
112108
$component = $factory->create('component1', [
@@ -126,41 +122,35 @@ public function testCannotModifyReadonlyProps(): void
126122

127123
public function testHydrationFailsIfChecksumMissing(): void
128124
{
129-
self::bootKernel();
130-
131125
/** @var LiveComponentHydrator $hydrator */
132-
$hydrator = self::$container->get('ux.live_component.component_hydrator');
126+
$hydrator = self::getContainer()->get('ux.live_component.component_hydrator');
133127

134128
/** @var ComponentFactory $factory */
135-
$factory = self::$container->get('ux.twig_component.component_factory');
129+
$factory = self::getContainer()->get('ux.twig_component.component_factory');
136130

137131
$this->expectException(\RuntimeException::class);
138132
$hydrator->hydrate($factory->get('component1'), []);
139133
}
140134

141135
public function testHydrationFailsOnChecksumMismatch(): void
142136
{
143-
self::bootKernel();
144-
145137
/** @var LiveComponentHydrator $hydrator */
146-
$hydrator = self::$container->get('ux.live_component.component_hydrator');
138+
$hydrator = self::getContainer()->get('ux.live_component.component_hydrator');
147139

148140
/** @var ComponentFactory $factory */
149-
$factory = self::$container->get('ux.twig_component.component_factory');
141+
$factory = self::getContainer()->get('ux.twig_component.component_factory');
150142

151143
$this->expectException(\RuntimeException::class);
152144
$hydrator->hydrate($factory->get('component1'), ['_checksum' => 'invalid']);
153145
}
154146

155147
public function testPreDehydrateAndPostHydrateHooksCalled(): void
156148
{
157-
self::bootKernel();
158-
159149
/** @var LiveComponentHydrator $hydrator */
160-
$hydrator = self::$container->get('ux.live_component.component_hydrator');
150+
$hydrator = self::getContainer()->get('ux.live_component.component_hydrator');
161151

162152
/** @var ComponentFactory $factory */
163-
$factory = self::$container->get('ux.twig_component.component_factory');
153+
$factory = self::getContainer()->get('ux.twig_component.component_factory');
164154

165155
/** @var Component2 $component */
166156
$component = $factory->create('component2');
@@ -187,13 +177,11 @@ public function testPreDehydrateAndPostHydrateHooksCalled(): void
187177

188178
public function testDeletingEntityBetweenDehydrationAndHydrationSetsItToNull(): void
189179
{
190-
self::bootKernel();
191-
192180
/** @var LiveComponentHydrator $hydrator */
193-
$hydrator = self::$container->get('ux.live_component.component_hydrator');
181+
$hydrator = self::getContainer()->get('ux.live_component.component_hydrator');
194182

195183
/** @var ComponentFactory $factory */
196-
$factory = self::$container->get('ux.twig_component.component_factory');
184+
$factory = self::getContainer()->get('ux.twig_component.component_factory');
197185

198186
$entity = create(Entity1::class);
199187

@@ -225,13 +213,11 @@ public function testDeletingEntityBetweenDehydrationAndHydrationSetsItToNull():
225213

226214
public function testCorrectlyUsesCustomFrontendNameInDehydrateAndHydrate(): void
227215
{
228-
self::bootKernel();
229-
230216
/** @var LiveComponentHydrator $hydrator */
231-
$hydrator = self::$container->get('ux.live_component.component_hydrator');
217+
$hydrator = self::getContainer()->get('ux.live_component.component_hydrator');
232218

233219
/** @var ComponentFactory $factory */
234-
$factory = self::$container->get('ux.twig_component.component_factory');
220+
$factory = self::getContainer()->get('ux.twig_component.component_factory');
235221

236222
/** @var Component3 $component */
237223
$component = $factory->create('component3', ['prop1' => 'value1', 'prop2' => 'value2']);

src/Turbo/Bridge/Mercure/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
"require": {
2929
"php": ">=7.2.5",
3030
"symfony/mercure-bundle": "^0.3",
31-
"symfony/twig-bundle": "^5.2",
31+
"symfony/twig-bundle": "^5.2|^6.0",
3232
"symfony/ux-turbo": "^1.3"
3333
},
3434
"extra": {

0 commit comments

Comments
 (0)