Skip to content

Commit 803a7a8

Browse files
committed
bug #975 [AI Bundle] Add missing proxy tag added for stores (Guikingone)
This PR was merged into the main branch. Discussion ---------- [AI Bundle] Add missing `proxy` tag added for stores | Q | A | ------------- | --- | Bug fix? | yes | New feature? | no | Docs? | no | Issues | #974 | License | MIT Commits ------- 509a871 fix(aibundle): missing proxy tag added for stores
2 parents 9d69408 + 509a871 commit 803a7a8

File tree

2 files changed

+42
-6
lines changed

2 files changed

+42
-6
lines changed

src/ai-bundle/src/AiBundle.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@
102102
use Symfony\AI\Store\Document\VectorizerInterface;
103103
use Symfony\AI\Store\Indexer;
104104
use Symfony\AI\Store\IndexerInterface;
105+
use Symfony\AI\Store\ManagedStoreInterface;
105106
use Symfony\AI\Store\StoreInterface;
106107
use Symfony\Component\Clock\ClockInterface;
107108
use Symfony\Component\Config\Definition\Configurator\DefinitionConfigurator;
@@ -986,6 +987,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
986987
->setLazy(true)
987988
->setArguments($arguments)
988989
->addTag('proxy', ['interface' => StoreInterface::class])
990+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
989991
->addTag('ai.store');
990992

991993
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1032,6 +1034,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
10321034
$store['table'],
10331035
])
10341036
->addTag('proxy', ['interface' => StoreInterface::class])
1037+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
10351038
->addTag('ai.store');
10361039

10371040
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1066,6 +1069,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
10661069
->setLazy(true)
10671070
->setArguments($arguments)
10681071
->addTag('proxy', ['interface' => StoreInterface::class])
1072+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
10691073
->addTag('ai.store');
10701074

10711075
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1107,6 +1111,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
11071111
->setLazy(true)
11081112
->addTag('ai.store')
11091113
->addTag('proxy', ['interface' => StoreInterface::class])
1114+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
11101115
->setArguments($arguments);
11111116

11121117
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1130,6 +1135,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
11301135
->setLazy(true)
11311136
->setArguments($arguments)
11321137
->addTag('proxy', ['interface' => StoreInterface::class])
1138+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
11331139
->addTag('ai.store');
11341140

11351141
$serviceId = 'ai.store.'.$type.'.'.$name;
@@ -1171,6 +1177,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
11711177
->setLazy(true)
11721178
->setArguments($arguments)
11731179
->addTag('proxy', ['interface' => StoreInterface::class])
1180+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
11741181
->addTag('ai.store');
11751182

11761183
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1201,6 +1208,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
12011208
->setLazy(true)
12021209
->setArguments($arguments)
12031210
->addTag('proxy', ['interface' => StoreInterface::class])
1211+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
12041212
->addTag('ai.store');
12051213

12061214
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1236,6 +1244,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
12361244
->setLazy(true)
12371245
->setArguments($arguments)
12381246
->addTag('proxy', ['interface' => StoreInterface::class])
1247+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
12391248
->addTag('ai.store');
12401249

12411250
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1266,6 +1275,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
12661275
->setLazy(true)
12671276
->setArguments($arguments)
12681277
->addTag('proxy', ['interface' => StoreInterface::class])
1278+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
12691279
->addTag('ai.store');
12701280

12711281
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1307,6 +1317,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
13071317
->setLazy(true)
13081318
->setArguments($arguments)
13091319
->addTag('proxy', ['interface' => StoreInterface::class])
1320+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
13101321
->addTag('ai.store');
13111322

13121323
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1369,6 +1380,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
13691380
->setLazy(true)
13701381
->setArguments($arguments)
13711382
->addTag('proxy', ['interface' => StoreInterface::class])
1383+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
13721384
->addTag('ai.store');
13731385

13741386
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1396,6 +1408,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
13961408
$store['distance'],
13971409
])
13981410
->addTag('proxy', ['interface' => StoreInterface::class])
1411+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
13991412
->addTag('ai.store');
14001413

14011414
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1438,6 +1451,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
14381451
->setLazy(true)
14391452
->setArguments($arguments)
14401453
->addTag('proxy', ['interface' => StoreInterface::class])
1454+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
14411455
->addTag('ai.store');
14421456

14431457
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1468,6 +1482,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
14681482
->setLazy(true)
14691483
->setArguments($arguments)
14701484
->addTag('proxy', ['interface' => StoreInterface::class])
1485+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
14711486
->addTag('ai.store');
14721487

14731488
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1488,6 +1503,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
14881503
$store['collection'],
14891504
])
14901505
->addTag('proxy', ['interface' => StoreInterface::class])
1506+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
14911507
->addTag('ai.store');
14921508

14931509
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1532,6 +1548,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
15321548
->setLazy(true)
15331549
->setArguments($arguments)
15341550
->addTag('proxy', ['interface' => StoreInterface::class])
1551+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
15351552
->addTag('ai.store');
15361553

15371554
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);

src/ai-bundle/tests/DependencyInjection/AiBundleTest.php

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
use Symfony\AI\Store\Document\Vectorizer;
4242
use Symfony\AI\Store\Document\VectorizerInterface;
4343
use Symfony\AI\Store\IndexerInterface;
44+
use Symfony\AI\Store\ManagedStoreInterface;
4445
use Symfony\AI\Store\StoreInterface;
4546
use Symfony\Component\Clock\ClockInterface;
4647
use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException;
@@ -516,7 +517,10 @@ public function testCacheStoreCanBeConfigured()
516517
$this->assertTrue($strategyDefinition->isLazy());
517518

518519
$this->assertTrue($definition->hasTag('proxy'));
519-
$this->assertSame([['interface' => StoreInterface::class]], $definition->getTag('proxy'));
520+
$this->assertSame([
521+
['interface' => StoreInterface::class],
522+
['interface' => ManagedStoreInterface::class],
523+
], $definition->getTag('proxy'));
520524
$this->assertTrue($definition->hasTag('ai.store'));
521525

522526
$this->assertTrue($container->hasAlias('.Symfony\AI\Store\StoreInterface $my_cache_store'));
@@ -554,7 +558,10 @@ public function testCacheStoreWithCustomKeyCanBeConfigured()
554558
$this->assertTrue($strategyDefinition->isLazy());
555559

556560
$this->assertTrue($definition->hasTag('proxy'));
557-
$this->assertSame([['interface' => StoreInterface::class]], $definition->getTag('proxy'));
561+
$this->assertSame([
562+
['interface' => StoreInterface::class],
563+
['interface' => ManagedStoreInterface::class],
564+
], $definition->getTag('proxy'));
558565
$this->assertTrue($definition->hasTag('ai.store'));
559566

560567
$this->assertTrue($container->hasAlias('.Symfony\AI\Store\StoreInterface $cache_my_cache_store_with_custom_key'));
@@ -597,7 +604,10 @@ public function testCacheStoreWithCustomStrategyCanBeConfigured()
597604
$this->assertSame(DistanceStrategy::CHEBYSHEV_DISTANCE, $strategyDefinition->getArgument(0));
598605

599606
$this->assertTrue($definition->hasTag('proxy'));
600-
$this->assertSame([['interface' => StoreInterface::class]], $definition->getTag('proxy'));
607+
$this->assertSame([
608+
['interface' => StoreInterface::class],
609+
['interface' => ManagedStoreInterface::class],
610+
], $definition->getTag('proxy'));
601611
$this->assertTrue($definition->hasTag('ai.store'));
602612

603613
$this->assertTrue($container->hasAlias('.Symfony\AI\Store\StoreInterface $cache_my_cache_store_with_custom_strategy'));
@@ -641,7 +651,10 @@ public function testCacheStoreWithCustomStrategyAndKeyCanBeConfigured()
641651
$this->assertSame(DistanceStrategy::CHEBYSHEV_DISTANCE, $strategyDefinition->getArgument(0));
642652

643653
$this->assertTrue($definition->hasTag('proxy'));
644-
$this->assertSame([['interface' => StoreInterface::class]], $definition->getTag('proxy'));
654+
$this->assertSame([
655+
['interface' => StoreInterface::class],
656+
['interface' => ManagedStoreInterface::class],
657+
], $definition->getTag('proxy'));
645658
$this->assertTrue($definition->hasTag('ai.store'));
646659

647660
$this->assertTrue($container->hasAlias('.Symfony\AI\Store\StoreInterface $cache_my_cache_store_with_custom_strategy_and_custom_key'));
@@ -750,7 +763,10 @@ public function testClickhouseStoreWithCustomHttpClientCanBeConfigured()
750763
$this->assertSame('my_table', (string) $definition->getArgument(2));
751764

752765
$this->assertTrue($definition->hasTag('proxy'));
753-
$this->assertSame([['interface' => StoreInterface::class]], $definition->getTag('proxy'));
766+
$this->assertSame([
767+
['interface' => StoreInterface::class],
768+
['interface' => ManagedStoreInterface::class],
769+
], $definition->getTag('proxy'));
754770
$this->assertTrue($definition->hasTag('ai.store'));
755771

756772
$this->assertTrue($container->hasAlias('.Symfony\AI\Store\StoreInterface $my_clickhouse_store'));
@@ -790,7 +806,10 @@ public function testClickhouseStoreWithCustomDsnCanBeConfigured()
790806
$this->assertSame('my_table', (string) $definition->getArgument(2));
791807

792808
$this->assertTrue($definition->hasTag('proxy'));
793-
$this->assertSame([['interface' => StoreInterface::class]], $definition->getTag('proxy'));
809+
$this->assertSame([
810+
['interface' => StoreInterface::class],
811+
['interface' => ManagedStoreInterface::class],
812+
], $definition->getTag('proxy'));
794813
$this->assertTrue($definition->hasTag('ai.store'));
795814

796815
$this->assertTrue($container->hasAlias('.Symfony\AI\Store\StoreInterface $my_clickhouse_store'));

0 commit comments

Comments
 (0)