for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Doctrine\Bundle\DoctrineBundle\DependencyInjection\Compiler;
use Symfony\Bridge\Doctrine\SchemaListener\MessengerTransportDoctrineSchemaSubscriber;
use Symfony\Bridge\Doctrine\SchemaListener\PdoCacheAdapterDoctrineSchemaSubscriber;
use Symfony\Component\Cache\Adapter\PdoAdapter;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Reference;
/**
* Removes schema subscribers for older Symfony versions.
*/
class SchemaSubscriberPass implements CompilerPassInterface
{
* {@inheritDoc}
public function process(ContainerBuilder $container)
// classes only exists in Symfony 5.1 and higher
$subscribers = [
'doctrine.orm.messenger.doctrine_schema_subscriber' => MessengerTransportDoctrineSchemaSubscriber::class,
'doctrine.orm.listeners.pdo_cache_adapter_doctrine_schema_subscriber' => PdoCacheAdapterDoctrineSchemaSubscriber::class,
];
foreach ($subscribers as $id => $class) {
if (!$container->hasDefinition($id)) {
continue;
}
if (!class_exists($class)) {
$container->removeDefinition($id);