8000 [FrameworkBundle][Lock] Fix certain DSNs identified as service IDs · symfony/symfony@9abfbe0 · GitHub
[go: up one dir, main page]

Skip to content

Commit 9abfbe0

Browse files
committed
[FrameworkBundle][Lock] Fix certain DSNs identified as service IDs
1 parent 06d1b76 commit 9abfbe0

File tree

5 files changed

+21
-7
lines changed

5 files changed

+21
-7
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2008,7 +2008,7 @@ private function registerLockConfiguration(array $config, ContainerBuilder $cont
20082008
$storeDefinitions = [];
20092009
foreach ($resourceStores as $resourceStore) {
20102010
$storeDsn = $container->resolveEnvPlaceholders($resourceStore, null, $usedEnvs);
2011-
if (!$usedEnvs && !str_contains($resourceStore, '://')) {
2011+
if (!$usedEnvs && !str_contains($resourceStore, ':') && !\in_array($resourceStore, ['flock', 'semaphore', 'in-memory'], true)) {
20122012
$resourceStore = new Reference($resourceStore);
20132013
}
20142014
$storeDefinition = new Definition(PersistingStoreInterface::class);

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/lock_named.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,7 @@
1212
'bar' => 'flock',
1313
'baz' => ['semaphore', 'flock'],
1414
'qux' => '%env(REDIS_DSN)%',
15+
'corge' => 'in-memory',
16+
'grault' => 'mysql:host=localhost;dbname=test',
1517
],
1618
]);

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/lock_named.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
<framework:resource name="baz">semaphore</framework:resource>
1919
<framework:resource name="baz">flock</framework:resource>
2020
<framework:resource name="qux">%env(REDIS_DSN)%</framework:resource>
21+
<framework:resource name="corge">in-memory</framework:resource>
22+
<framework:resource name="grault">mysql:host=localhost;dbname=test</framework:resource>
2123
</framework:lock>
2224
</framework:config>
2325
</container>

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/lock_named.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,5 @@ framework:
1212
bar: flock
1313
baz: [semaphore, flock]
1414
qux: "%env(REDIS_DSN)%"
15+
corge: in-memory
16+
grault: mysql:host=localhost;dbname=test

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2423,9 +2423,9 @@ public function testDefaultLock()
24232423
$storeDef = $container->getDefinition($container->getDefinition('lock.default.factory')->getArgument(0));
24242424

24252425
if (class_exists(SemaphoreStore::class) && SemaphoreStore::isSupported()) {
2426-
self::assertEquals(new Reference('semaphore'), $storeDef->getArgument(0));
2426+
self::assertSame('semaphore', $storeDef->getArgument(0));
24272427
} else {
2428-
self::assertEquals(new Reference('flock'), $storeDef->getArgument(0));
2428+
self::assertSame('flock', $storeDef->getArgument(0));
24292429
}
24302430
}
24312431

@@ -2435,23 +2435,31 @@ public function testNamedLocks()
24352435

24362436
self::assertTrue($container->hasDefinition('lock.foo.factory'));
24372437
$storeDef = $container->getDefinition($container->getDefinition('lock.foo.factory')->getArgument(0));
2438-
self::assertEquals(new Reference('semaphore'), $storeDef->getArgument(0));
2438+
self::assertSame('semaphore', $storeDef->getArgument(0));
24392439

24402440
self::assertTrue($container->hasDefinition('lock.bar.factory'));
24412441
$storeDef = $container->getDefinition($container->getDefinition('lock.bar.factory')->getArgument(0));
2442-
self::assertEquals(new Reference('flock'), $storeDef->getArgument(0));
2442+
self::assertSame('flock', $storeDef->getArgument(0));
24432443

24442444
self::assertTrue($container->hasDefinition('lock.baz.factory'));
24452445
$storeDef = $container->getDefinition($container->getDefinition('lock.baz.factory')->getArgument(0));
24462446
self::assertIsArray($storeDefArg = $storeDef->getArgument(0));
24472447
$storeDef1 = $container->getDefinition($storeDefArg[0]);
24482448
$storeDef2 = $container->getDefinition($storeDefArg[1]);
2449-
self::assertEquals(new Reference('semaphore'), $storeDef1->getArgument(0));
2450-
self::assertEquals(new Reference('flock'), $storeDef2->getArgument(0));
2449+
self::assertSame('semaphore', $storeDef1->getArgument(0));
2450+
self::assertSame('flock', $storeDef2->getArgument(0));
24512451

24522452
self::assertTrue($container->hasDefinition('lock.qux.factory'));
24532453
$storeDef = $container->getDefinition($container->getDefinition('lock.qux.factory')->getArgument(0));
24542454
self::assertStringContainsString('REDIS_DSN', $storeDef->getArgument(0));
2455+
2456+
self::assertTrue($container->hasDefinition('lock.corge.factory'));
2457+
$storeDef = $container->getDefinition($container->getDefinition('lock.corge.factory')->getArgument(0));
2458+
self::assertSame('in-memory', $storeDef->getArgument(0));
2459+
2460+
self::assertTrue($container->hasDefinition('lock.grault.factory'));
2461+
$storeDef = $container->getDefinition($container->getDefinition('lock.grault.factory')->getArgument(0));
2462+
self::assertSame('mysql:host=localhost;dbname=test', $storeDef->getArgument(0));
24552463
}
24562464

24572465
public function testLockWithService()

0 commit comments

Comments
 (0)
0