Skip to content

Commit e294c53

Browse files
committed
Add framework config for DBAL cache adapter
1 parent 8f0a96b commit e294c53

File tree

4 files changed

+19
-10
lines changed

4 files changed

+19
-10
lines changed

SchemaListener/DoctrineDbalCacheAdapterSchemaSubscriber.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
use Doctrine\Common\EventSubscriber;
1515
use Doctrine\ORM\Tools\Event\GenerateSchemaEventArgs;
1616
use Doctrine\ORM\Tools\ToolEvents;
17-
use Symfony\Component\Cache\Adapter\DoctrineSchemaConfiguratorInterface;
17+
use Symfony\Component\Cache\Adapter\DoctrineDbalAdapter;
1818

1919
/**
2020
* Automatically adds the cache table needed for the DoctrineDbalAdapter of
@@ -27,7 +27,7 @@ final class DoctrineDbalCacheAdapterSchemaSubscriber implements EventSubscriber
2727
private $dbalAdapters;
2828

2929
/**
30-
* @param iterable<mixed, DoctrineSchemaConfiguratorInterface> $dbalAdapters
30+
* @param iterable<mixed, DoctrineDbalAdapter> $dbalAdapters
3131
*/
3232
public function __construct(iterable $dbalAdapters)
3333
{

SchemaListener/PdoCacheAdapterDoctrineSchemaSubscriber.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
use Doctrine\ORM\Tools\ToolEvents;
1717
use Symfony\Component\Cache\Adapter\PdoAdapter;
1818

19-
trigger_deprecation('symfony/doctrine-bridge', '5.4', 'The "%s" class is deprecated, use "%s" instead.', PdoCacheAdapterDoctrineSchemaSubscriber::class, DoctrineDbalCacheAdapterSchemaSubscriber::class);
20-
2119
/**
2220
* Automatically adds the cache table needed for the PdoAdapter.
2321
*
@@ -41,6 +39,10 @@ public function postGenerateSchema(GenerateSchemaEventArgs $event): void
4139
{
4240
$dbalConnection = $event->getEntityManager()->getConnection();
4341
foreach ($this->pdoAdapters as $pdoAdapter) {
42+
if (PdoAdapter::class !== \get_class($pdoAdapter)) {
43+
trigger_deprecation('symfony/doctrine-bridge', '5.4', 'The "%s" class is deprecated, use "%s" instead.', self::class, DoctrineDbalCacheAdapterSchemaSubscriber::class);
44+
}
45+
4446
$pdoAdapter->configureSchema($event->getSchema(), $dbalConnection);
4547
}
4648
}

Tests/SchemaListener/DoctrineDbalCacheAdapterSchemaSubscriberTest.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
use Doctrine\ORM\Tools\Event\GenerateSchemaEventArgs;
1818
use PHPUnit\Framework\TestCase;
1919
use Symfony\Bridge\Doctrine\SchemaListener\DoctrineDbalCacheAdapterSchemaSubscriber;
20-
use Symfony\Component\Cache\Adapter\DoctrineSchemaConfiguratorInterface;
20+
use Symfony\Component\Cache\Adapter\DoctrineDbalAdapter;
2121

2222
class DoctrineDbalCacheAdapterSchemaSubscriberTest extends TestCase
2323
{
@@ -29,14 +29,15 @@ public function testPostGenerateSchema()
2929
$entityManager->expects($this->once())
3030
->method('getConnection')
3131
->willReturn($dbalConnection);
32+
3233
$event = new GenerateSchemaEventArgs($entityManager, $schema);
3334

34-
$pdoAdapter = $this->createMock(DoctrineSchemaConfiguratorInterface::class);
35-
$pdoAdapter->expects($this->once())
35+
$dbalAdapter = $this->createMock(DoctrineDbalAdapter::class);
36+
$dbalAdapter->expects($this->once())
3637
->method('configureSchema')
3738
->with($schema, $dbalConnection);
3839

39-
$subscriber = new DoctrineDbalCacheAdapterSchemaSubscriber([$pdoAdapter]);
40+
$subscriber = new DoctrineDbalCacheAdapterSchemaSubscriber([$dbalAdapter]);
4041
$subscriber->postGenerateSchema($event);
4142
}
4243
}

Tests/SchemaListener/PdoCacheAdapterDoctrineSchemaSubscriberTest.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,27 +17,33 @@
1717
use Doctrine\ORM\Tools\Event\GenerateSchemaEventArgs;
1818
use PHPUnit\Framework\TestCase;
1919
use Symfony\Bridge\Doctrine\SchemaListener\PdoCacheAdapterDoctrineSchemaSubscriber;
20+
use Symfony\Bridge\PhpUnit\ExpectDeprecationTrait;
2021
use Symfony\Component\Cache\Adapter\PdoAdapter;
2122

2223
/**
2324
* @group legacy
2425
*/
2526
class PdoCacheAdapterDoctrineSchemaSubscriberTest extends TestCase
2627
{
28+
use ExpectDeprecationTrait;
29+
2730
public function testPostGenerateSchema()
2831
{
2932
$schema = new Schema();
3033
$dbalConnection = $this->createMock(Connection::class);
3134
$entityManager = $this->createMock(EntityManagerInterface::class);
32-
$entityManager->expects($this->once())
35+
$entityManager->expects($this->any())
3336
->method('getConnection')
3437
->willReturn($dbalConnection);
38+
3539
$event = new GenerateSchemaEventArgs($entityManager, $schema);
3640

3741
$pdoAdapter = $this->createMock(PdoAdapter::class);
3842
$pdoAdapter->expects($this->once())
3943
->method('configureSchema')
40-
->with($schema, $dbalConnection);
44+
->with($event->getSchema(), $event->getEntityManager()->getConnection());
45+
46+
$this->expectDeprecation('Since symfony/doctrine-bridge 5.4: The "Symfony\Bridge\Doctrine\SchemaListener\PdoCacheAdapterDoctrineSchemaSubscriber" class is deprecated, use "Symfony\Bridge\Doctrine\SchemaListener\DoctrineDbalCacheAdapterSchemaSubscriber" instead.');
4147

4248
$subscriber = new PdoCacheAdapterDoctrineSchemaSubscriber([$pdoAdapter]);
4349
$subscriber->postGenerateSchema($event);

0 commit comments

Comments
 (0)