Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit44e7ddc

Browse files
AydinHassannicolas-grekas
authored andcommitted
fix using lock from service when previous locks used env vars
1 parent4221e02 commit44e7ddc

File tree

5 files changed

+63
-0
lines changed

5 files changed

+63
-0
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2062,6 +2062,7 @@ private function registerLockConfiguration(array $config, ContainerBuilder $cont
20622062
// Generate stores
20632063
$storeDefinitions = [];
20642064
foreach ($resourceStoresas$resourceStore) {
2065+
$usedEnvs = [];
20652066
$storeDsn =$container->resolveEnvPlaceholders($resourceStore,null,$usedEnvs);
20662067
$storeDefinition =newDefinition(PersistingStoreInterface::class);
20672068
$storeDefinition
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
$container->setParameter('env(REDIS_DSN)','redis://paas.com');
4+
5+
$container->loadFromExtension('framework', [
6+
'annotations' =>false,
7+
'http_method_override' =>false,
8+
'handle_all_throwables' =>true,
9+
'php_errors' => ['log' =>true],
10+
'lock' => [
11+
'foo' =>'%env(REDIS_DSN)%',
12+
'bar' =>'my_service',
13+
],
14+
]);
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?xml version="1.0" ?>
2+
<containerxmlns="http://symfony.com/schema/dic/services"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:framework="http://symfony.com/schema/dic/symfony"
5+
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd
6+
http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
7+
8+
<parameters>
9+
<parameterkey="env(REDIS_URL)">redis://paas.com</parameter>
10+
</parameters>
11+
12+
<framework:confighttp-method-override="false"handle-all-throwables="true">
13+
<framework:annotationsenabled="false" />
14+
<framework:php-errorslog="true" />
15+
<framework:lock>
16+
<framework:resourcename="foo">%env(REDIS_DSN)%</framework:resource>
17+
<framework:resourcename="bar">my_service</framework:resource>
18+
</framework:lock>
19+
</framework:config>
20+
</container>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
services:
2+
my_service:
3+
class:\Redis
4+
5+
framework:
6+
annotations:false
7+
http_method_override:false
8+
handle_all_throwables:true
9+
php_errors:
10+
log:true
11+
lock:
12+
foo:"%env(REDIS_DSN)%"
13+
bar:my_service

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2496,6 +2496,21 @@ public function testNamedLocks()
24962496
self::assertStringContainsString('REDIS_DSN',$storeDef->getArgument(0));
24972497
}
24982498

2499+
publicfunctiontestLockWithServiceAndEnv()
2500+
{
2501+
$container =$this->createContainerFromFile('lock_service_and_env', [],true,false);
2502+
$container->getCompilerPassConfig()->setOptimizationPasses([newResolveChildDefinitionsPass()]);
2503+
$container->compile();
2504+
2505+
self::assertTrue($container->hasDefinition('lock.foo.factory'));
2506+
self::assertTrue($container->hasDefinition('lock.bar.factory'));
2507+
$storeDef =$container->getDefinition($container->getDefinition('lock.bar.factory')->getArgument(0));
2508+
2509+
$connection =$storeDef->getArgument(0);
2510+
self::assertInstanceOf(Reference::class,$connection);
2511+
self::assertEquals('my_service',$connection->__toString());
2512+
}
2513+
24992514
publicfunctiontestDefaultSemaphore()
25002515
{
25012516
$container =$this->createContainerFromFile('semaphore');

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp