This commit is contained in:
Marek
2026-03-24 00:04:55 +01:00
commit c5229e48ed
4225 changed files with 511461 additions and 0 deletions

View File

@@ -0,0 +1,145 @@
<?php
declare(strict_types=1);
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
use Doctrine\Bundle\DoctrineBundle\Command\CreateDatabaseDoctrineCommand;
use Doctrine\Bundle\DoctrineBundle\Command\DropDatabaseDoctrineCommand;
use Doctrine\Bundle\DoctrineBundle\Command\Proxy\RunSqlDoctrineCommand;
use Doctrine\Bundle\DoctrineBundle\ConnectionFactory;
use Doctrine\Bundle\DoctrineBundle\Controller\ProfilerController;
use Doctrine\Bundle\DoctrineBundle\DataCollector\DoctrineDataCollector;
use Doctrine\Bundle\DoctrineBundle\Dbal\BlacklistSchemaAssetFilter;
use Doctrine\Bundle\DoctrineBundle\Dbal\ManagerRegistryAwareConnectionProvider;
use Doctrine\Bundle\DoctrineBundle\Dbal\SchemaAssetsFilterManager;
use Doctrine\Bundle\DoctrineBundle\Registry;
use Doctrine\Bundle\DoctrineBundle\Twig\DoctrineExtension;
use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
use Doctrine\DBAL\Configuration;
use Doctrine\DBAL\Connection;
use Doctrine\DBAL\Event\Listeners\MysqlSessionInit;
use Doctrine\DBAL\Event\Listeners\OracleSessionInit;
use Doctrine\DBAL\Schema\DefaultSchemaManagerFactory;
use Doctrine\DBAL\Schema\LegacySchemaManagerFactory;
use Doctrine\DBAL\Tools\Console\Command\RunSqlCommand;
use Doctrine\DBAL\Tools\DsnParser;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Bridge\Doctrine\ContainerAwareEventManager;
use Symfony\Bridge\Doctrine\Middleware\IdleConnection\Listener;
return static function (ContainerConfigurator $container): void {
$container->parameters()
->set('doctrine.dbal.configuration.class', Configuration::class)
->set('doctrine.data_collector.class', DoctrineDataCollector::class)
->set('doctrine.dbal.connection.event_manager.class', ContainerAwareEventManager::class)
->set('doctrine.dbal.connection_factory.class', ConnectionFactory::class)
->set('doctrine.dbal.events.mysql_session_init.class', MysqlSessionInit::class)
->set('doctrine.dbal.events.oracle_session_init.class', OracleSessionInit::class)
->set('doctrine.class', Registry::class)
->set('doctrine.entity_managers', [])
->set('doctrine.default_entity_manager', '');
$container->services()
->alias(Connection::class, 'database_connection')
->alias(ManagerRegistry::class, 'doctrine')
->alias(LegacyManagerRegistry::class, 'doctrine')
->set('data_collector.doctrine', (string) param('doctrine.data_collector.class'))
->args([
service('doctrine'),
true,
service('doctrine.debug_data_holder')->nullOnInvalid(),
])
->tag('data_collector', ['template' => '@Doctrine/Collector/db.html.twig', 'id' => 'db', 'priority' => 250])
->set('doctrine.dbal.connection_factory', (string) param('doctrine.dbal.connection_factory.class'))
->args([
(string) param('doctrine.dbal.connection_factory.types'),
service('doctrine.dbal.connection_factory.dsn_parser'),
])
->set('doctrine.dbal.connection_factory.dsn_parser', DsnParser::class)
->args([
[],
])
->set('doctrine.dbal.connection', Connection::class)
->abstract()
->factory([service('doctrine.dbal.connection_factory'), 'createConnection'])
->set('doctrine.dbal.connection.event_manager', (string) param('doctrine.dbal.connection.event_manager.class'))
->abstract()
->args([
service('service_container'),
])
->set('doctrine.dbal.connection.configuration', (string) param('doctrine.dbal.configuration.class'))
->abstract()
->set('doctrine', (string) param('doctrine.class'))
->public()
->args([
service('service_container'),
(string) param('doctrine.connections'),
(string) param('doctrine.entity_managers'),
(string) param('doctrine.default_connection'),
(string) param('doctrine.default_entity_manager'),
])
->tag('kernel.reset', ['method' => 'reset'])
->set('doctrine.twig.doctrine_extension', DoctrineExtension::class)
->tag('twig.extension')
->set('doctrine.dbal.schema_asset_filter_manager', SchemaAssetsFilterManager::class)
->abstract()
->set('doctrine.dbal.well_known_schema_asset_filter', BlacklistSchemaAssetFilter::class)
->args([
[],
])
->set('doctrine.database_create_command', CreateDatabaseDoctrineCommand::class)
->args([
service('doctrine'),
])
->tag('console.command', ['command' => 'doctrine:database:create'])
->set('doctrine.database_drop_command', DropDatabaseDoctrineCommand::class)
->args([
service('doctrine'),
])
->tag('console.command', ['command' => 'doctrine:database:drop'])
->set('doctrine.query_sql_command', RunSqlDoctrineCommand::class)
->args([
service(ManagerRegistryAwareConnectionProvider::class)->nullOnInvalid(),
])
->tag('console.command', ['command' => 'doctrine:query:sql'])
->set(RunSqlCommand::class)
->args([
service(ManagerRegistryAwareConnectionProvider::class)->nullOnInvalid(),
])
->tag('console.command', ['command' => 'dbal:run-sql'])
->set(ProfilerController::class)
->args([
service('twig'),
service('doctrine'),
service('profiler'),
])
->tag('controller.service_arguments')
->set('doctrine.dbal.idle_connection_listener', Listener::class)
->args([
service('doctrine.dbal.connection_expiries'),
service('service_container'),
])
->tag('kernel.event_subscriber')
->set('doctrine.dbal.default_schema_manager_factory', DefaultSchemaManagerFactory::class)
->set('doctrine.dbal.legacy_schema_manager_factory', LegacySchemaManagerFactory::class);
};

View File

@@ -0,0 +1,62 @@
<?php
declare(strict_types=1);
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
use Symfony\Bridge\Doctrine\Messenger\DoctrineClearEntityManagerWorkerSubscriber;
use Symfony\Bridge\Doctrine\Messenger\DoctrineCloseConnectionMiddleware;
use Symfony\Bridge\Doctrine\Messenger\DoctrineOpenTransactionLoggerMiddleware;
use Symfony\Bridge\Doctrine\Messenger\DoctrinePingConnectionMiddleware;
use Symfony\Bridge\Doctrine\Messenger\DoctrineTransactionMiddleware;
use Symfony\Bridge\Doctrine\SchemaListener\MessengerTransportDoctrineSchemaListener;
use Symfony\Component\Messenger\Bridge\Doctrine\Transport\DoctrineTransportFactory;
return static function (ContainerConfigurator $container): void {
$container->services()
->set('messenger.middleware.doctrine_transaction', DoctrineTransactionMiddleware::class)
->abstract()
->args([
service('doctrine'),
])
->set('messenger.middleware.doctrine_ping_connection', DoctrinePingConnectionMiddleware::class)
->abstract()
->args([
service('doctrine'),
])
->set('messenger.middleware.doctrine_close_connection', DoctrineCloseConnectionMiddleware::class)
->abstract()
->args([
service('doctrine'),
])
->set('messenger.middleware.doctrine_open_transaction_logger', DoctrineOpenTransactionLoggerMiddleware::class)
->abstract()
->args([
service('doctrine'),
null,
service('logger'),
])
->set('doctrine.orm.messenger.event_subscriber.doctrine_clear_entity_manager', DoctrineClearEntityManagerWorkerSubscriber::class)
->tag('kernel.event_subscriber')
->args([
service('doctrine'),
])
->set('messenger.transport.doctrine.factory', DoctrineTransportFactory::class)
->tag('messenger.transport_factory')
->args([
service('doctrine'),
])
->set('doctrine.orm.messenger.doctrine_schema_listener', MessengerTransportDoctrineSchemaListener::class)
->args([
tagged_iterator('messenger.receiver'),
])
->tag('doctrine.event_listener', ['event' => 'postGenerateSchema'])
->tag('doctrine.event_listener', ['event' => 'onSchemaCreateTable']);
};

View File

@@ -0,0 +1,44 @@
<?php
declare(strict_types=1);
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
use ArrayObject;
use Doctrine\Bundle\DoctrineBundle\Middleware\BacktraceDebugDataHolder;
use Doctrine\Bundle\DoctrineBundle\Middleware\DebugMiddleware;
use Doctrine\Bundle\DoctrineBundle\Middleware\IdleConnectionMiddleware;
use Doctrine\DBAL\Logging\Middleware;
return static function (ContainerConfigurator $container): void {
$container->services()
->set('doctrine.dbal.connection_expiries', ArrayObject::class)
->set('doctrine.dbal.logging_middleware', Middleware::class)
->abstract()
->args([
service('logger'),
])
->tag('monolog.logger', ['channel' => 'doctrine'])
->set('doctrine.debug_data_holder', BacktraceDebugDataHolder::class)
->args([
[],
])
->tag('kernel.reset', ['method' => 'reset'])
->set('doctrine.dbal.debug_middleware', DebugMiddleware::class)
->abstract()
->args([
service('doctrine.debug_data_holder'),
service('debug.stopwatch')->nullOnInvalid(),
])
->set('doctrine.dbal.idle_connection_middleware', IdleConnectionMiddleware::class)
->abstract()
->args([
service('doctrine.dbal.connection_expiries'),
null,
]);
};

View File

@@ -0,0 +1,368 @@
<?php
declare(strict_types=1);
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
use Doctrine\Bundle\DoctrineBundle\Command\ImportMappingDoctrineCommand;
use Doctrine\Bundle\DoctrineBundle\ManagerConfigurator;
use Doctrine\Bundle\DoctrineBundle\Mapping\ContainerEntityListenerResolver;
use Doctrine\Bundle\DoctrineBundle\Orm\ManagerRegistryAwareEntityManagerProvider;
use Doctrine\Bundle\DoctrineBundle\Repository\ContainerRepositoryFactory;
use Doctrine\ORM\Cache\CacheConfiguration;
use Doctrine\ORM\Cache\DefaultCacheFactory;
use Doctrine\ORM\Cache\Logging\CacheLoggerChain;
use Doctrine\ORM\Cache\Logging\StatisticsCacheLogger;
use Doctrine\ORM\Cache\Region\DefaultRegion;
use Doctrine\ORM\Cache\Region\FileLockRegion;
use Doctrine\ORM\Cache\RegionsConfiguration;
use Doctrine\ORM\Configuration;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Mapping\AnsiQuoteStrategy;
use Doctrine\ORM\Mapping\DefaultNamingStrategy;
use Doctrine\ORM\Mapping\DefaultQuoteStrategy;
use Doctrine\ORM\Mapping\DefaultTypedFieldMapper;
use Doctrine\ORM\Mapping\Driver\AnnotationDriver;
use Doctrine\ORM\Mapping\Driver\AttributeDriver;
use Doctrine\ORM\Mapping\Driver\SimplifiedXmlDriver;
use Doctrine\ORM\Mapping\Driver\SimplifiedYamlDriver;
use Doctrine\ORM\Mapping\UnderscoreNamingStrategy;
use Doctrine\ORM\Tools\AttachEntityListenersListener;
use Doctrine\ORM\Tools\Console\Command\ClearCache\CollectionRegionCommand;
use Doctrine\ORM\Tools\Console\Command\ClearCache\EntityRegionCommand;
use Doctrine\ORM\Tools\Console\Command\ClearCache\MetadataCommand;
use Doctrine\ORM\Tools\Console\Command\ClearCache\QueryCommand;
use Doctrine\ORM\Tools\Console\Command\ClearCache\QueryRegionCommand;
use Doctrine\ORM\Tools\Console\Command\ClearCache\ResultCommand;
use Doctrine\ORM\Tools\Console\Command\ConvertMappingCommand;
use Doctrine\ORM\Tools\Console\Command\EnsureProductionSettingsCommand;
use Doctrine\ORM\Tools\Console\Command\InfoCommand;
use Doctrine\ORM\Tools\Console\Command\MappingDescribeCommand;
use Doctrine\ORM\Tools\Console\Command\RunDqlCommand;
use Doctrine\ORM\Tools\Console\Command\SchemaTool\CreateCommand;
use Doctrine\ORM\Tools\Console\Command\SchemaTool\DropCommand;
use Doctrine\ORM\Tools\Console\Command\SchemaTool\UpdateCommand;
use Doctrine\ORM\Tools\Console\Command\ValidateSchemaCommand;
use Doctrine\ORM\Tools\ResolveTargetEntityListener;
use Doctrine\Persistence\Mapping\Driver\MappingDriverChain;
use Doctrine\Persistence\Mapping\Driver\PHPDriver;
use Doctrine\Persistence\Mapping\Driver\StaticPHPDriver;
use Symfony\Bridge\Doctrine\ArgumentResolver\EntityValueResolver;
use Symfony\Bridge\Doctrine\CacheWarmer\ProxyCacheWarmer;
use Symfony\Bridge\Doctrine\Form\DoctrineOrmTypeGuesser;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Bridge\Doctrine\SchemaListener\DoctrineDbalCacheAdapterSchemaListener;
use Symfony\Bridge\Doctrine\SchemaListener\LockStoreSchemaListener;
use Symfony\Bridge\Doctrine\SchemaListener\PdoSessionHandlerSchemaListener;
use Symfony\Bridge\Doctrine\SchemaListener\RememberMeTokenProviderDoctrineSchemaListener;
use Symfony\Bridge\Doctrine\Security\User\EntityUserProvider;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntityValidator;
use Symfony\Bridge\Doctrine\Validator\DoctrineInitializer;
use Symfony\Component\DependencyInjection\ServiceLocator;
use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
use const CASE_LOWER;
return static function (ContainerConfigurator $container): void {
$container->parameters()
->set('doctrine.orm.configuration.class', Configuration::class)
->set('doctrine.orm.entity_manager.class', EntityManager::class)
->set('doctrine.orm.manager_configurator.class', ManagerConfigurator::class)
// cache (keep classes as strings to avoid legacy class resolution issues)
->set('doctrine.orm.cache.array.class', 'Doctrine\\Common\\Cache\\ArrayCache')
->set('doctrine.orm.cache.apc.class', 'Doctrine\\Common\\Cache\\ApcCache')
->set('doctrine.orm.cache.memcache.class', 'Doctrine\\Common\\Cache\\MemcacheCache')
->set('doctrine.orm.cache.memcache_host', 'localhost')
->set('doctrine.orm.cache.memcache_port', 11211)
->set('doctrine.orm.cache.memcache_instance.class', 'Memcache')
->set('doctrine.orm.cache.memcached.class', 'Doctrine\\Common\\Cache\\MemcachedCache')
->set('doctrine.orm.cache.memcached_host', 'localhost')
->set('doctrine.orm.cache.memcached_port', 11211)
->set('doctrine.orm.cache.memcached_instance.class', 'Memcached')
->set('doctrine.orm.cache.redis.class', 'Doctrine\\Common\\Cache\\RedisCache')
->set('doctrine.orm.cache.redis_host', 'localhost')
->set('doctrine.orm.cache.redis_port', 6379)
->set('doctrine.orm.cache.redis_instance.class', 'Redis')
->set('doctrine.orm.cache.xcache.class', 'Doctrine\\Common\\Cache\\XcacheCache')
->set('doctrine.orm.cache.wincache.class', 'Doctrine\\Common\\Cache\\WinCacheCache')
->set('doctrine.orm.cache.zenddata.class', 'Doctrine\\Common\\Cache\\ZendDataCache')
// metadata drivers
->set('doctrine.orm.metadata.driver_chain.class', MappingDriverChain::class)
->set('doctrine.orm.metadata.annotation.class', AnnotationDriver::class)
->set('doctrine.orm.metadata.xml.class', SimplifiedXmlDriver::class)
->set('doctrine.orm.metadata.yml.class', SimplifiedYamlDriver::class)
->set('doctrine.orm.metadata.php.class', PHPDriver::class)
->set('doctrine.orm.metadata.staticphp.class', StaticPHPDriver::class)
->set('doctrine.orm.metadata.attribute.class', AttributeDriver::class)
// cache warmer
->set('doctrine.orm.proxy_cache_warmer.class', ProxyCacheWarmer::class)
// form field factory guesser
->set('form.type_guesser.doctrine.class', DoctrineOrmTypeGuesser::class)
// validator
->set('doctrine.orm.validator.unique.class', UniqueEntityValidator::class)
->set('doctrine.orm.validator_initializer.class', DoctrineInitializer::class)
// security
->set('doctrine.orm.security.user.provider.class', EntityUserProvider::class)
// listeners
->set('doctrine.orm.listeners.resolve_target_entity.class', ResolveTargetEntityListener::class)
->set('doctrine.orm.listeners.attach_entity_listeners.class', AttachEntityListenersListener::class)
// naming strategy
->set('doctrine.orm.naming_strategy.default.class', DefaultNamingStrategy::class)
->set('doctrine.orm.naming_strategy.underscore.class', UnderscoreNamingStrategy::class)
// quote strategy
->set('doctrine.orm.quote_strategy.default.class', DefaultQuoteStrategy::class)
->set('doctrine.orm.quote_strategy.ansi.class', AnsiQuoteStrategy::class)
// typed field mapper
->set('doctrine.orm.typed_field_mapper.default.class', DefaultTypedFieldMapper::class)
// entity listener resolver
->set('doctrine.orm.entity_listener_resolver.class', ContainerEntityListenerResolver::class)
// second level cache
->set('doctrine.orm.second_level_cache.default_cache_factory.class', DefaultCacheFactory::class)
->set('doctrine.orm.second_level_cache.default_region.class', DefaultRegion::class)
->set('doctrine.orm.second_level_cache.filelock_region.class', FileLockRegion::class)
->set('doctrine.orm.second_level_cache.logger_chain.class', CacheLoggerChain::class)
->set('doctrine.orm.second_level_cache.logger_statistics.class', StatisticsCacheLogger::class)
->set('doctrine.orm.second_level_cache.cache_configuration.class', CacheConfiguration::class)
->set('doctrine.orm.second_level_cache.regions_configuration.class', RegionsConfiguration::class);
$container->services()
->alias(EntityManagerInterface::class, 'doctrine.orm.entity_manager')
->alias('doctrine.orm.metadata.annotation_reader', 'annotation_reader')
->set('doctrine.orm.proxy_cache_warmer', (string) param('doctrine.orm.proxy_cache_warmer.class'))
->tag('kernel.cache_warmer')
->args([
service('doctrine'),
])
->set('form.type_guesser.doctrine', (string) param('form.type_guesser.doctrine.class'))
->tag('form.type_guesser')
->args([
service('doctrine'),
])
->set('form.type.entity', EntityType::class)
->tag('form.type', ['alias' => 'entity'])
->args([
service('doctrine'),
])
->set('doctrine.orm.configuration', (string) param('doctrine.orm.configuration.class'))
->abstract()
->set('doctrine.orm.entity_manager.abstract', (string) param('doctrine.orm.entity_manager.class'))
->abstract()
->lazy()
->set('doctrine.orm.container_repository_factory', ContainerRepositoryFactory::class)
->args([
inline_service(ServiceLocator::class)->args([
[],
]),
])
->set('doctrine.orm.manager_configurator.abstract', (string) param('doctrine.orm.manager_configurator.class'))
->abstract()
->args([
[],
[],
])
->set('doctrine.orm.validator.unique', (string) param('doctrine.orm.validator.unique.class'))
->tag('validator.constraint_validator', ['alias' => 'doctrine.orm.validator.unique'])
->args([
service('doctrine'),
])
->set('doctrine.orm.validator_initializer', (string) param('doctrine.orm.validator_initializer.class'))
->tag('validator.initializer')
->args([
service('doctrine'),
])
->set('doctrine.orm.security.user.provider', (string) param('doctrine.orm.security.user.provider.class'))
->abstract()
->args([
service('doctrine'),
])
->set('doctrine.orm.listeners.resolve_target_entity', (string) param('doctrine.orm.listeners.resolve_target_entity.class'))
->set('doctrine.orm.listeners.doctrine_dbal_cache_adapter_schema_listener', DoctrineDbalCacheAdapterSchemaListener::class)
->args([
[],
])
->tag('doctrine.event_listener', ['event' => 'postGenerateSchema'])
->set('doctrine.orm.listeners.doctrine_token_provider_schema_listener', RememberMeTokenProviderDoctrineSchemaListener::class)
->args([
tagged_iterator('security.remember_me_handler'),
])
->tag('doctrine.event_listener', ['event' => 'postGenerateSchema'])
->set('doctrine.orm.listeners.pdo_session_handler_schema_listener', PdoSessionHandlerSchemaListener::class)
->args([
service('session.handler'),
])
->tag('doctrine.event_listener', ['event' => 'postGenerateSchema'])
->set('doctrine.orm.listeners.lock_store_schema_listener', LockStoreSchemaListener::class)
->args([
tagged_iterator('lock.store'),
])
->tag('doctrine.event_listener', ['event' => 'postGenerateSchema'])
->set('doctrine.orm.naming_strategy.default', (string) param('doctrine.orm.naming_strategy.default.class'))
->set('doctrine.orm.naming_strategy.underscore', (string) param('doctrine.orm.naming_strategy.underscore.class'))
->set('doctrine.orm.naming_strategy.underscore_number_aware', (string) param('doctrine.orm.naming_strategy.underscore.class'))
->args([
CASE_LOWER,
true,
])
->set('doctrine.orm.quote_strategy.default', (string) param('doctrine.orm.quote_strategy.default.class'))
->set('doctrine.orm.quote_strategy.ansi', (string) param('doctrine.orm.quote_strategy.ansi.class'))
->set('doctrine.orm.typed_field_mapper.default', (string) param('doctrine.orm.typed_field_mapper.default.class'))
->set('doctrine.ulid_generator', 'Symfony\\Bridge\\Doctrine\\IdGenerator\\UlidGenerator')
->args([
service('ulid.factory')->ignoreOnInvalid(),
])
->tag('doctrine.id_generator')
->set('doctrine.uuid_generator', 'Symfony\\Bridge\\Doctrine\\IdGenerator\\UuidGenerator')
->args([
service('uuid.factory')->ignoreOnInvalid(),
])
->tag('doctrine.id_generator')
->set('doctrine.orm.command.entity_manager_provider', ManagerRegistryAwareEntityManagerProvider::class)
->args([
service('doctrine'),
])
->set('doctrine.orm.entity_value_resolver', EntityValueResolver::class)
->args([
service('doctrine'),
service('doctrine.orm.entity_value_resolver.expression_language')->ignoreOnInvalid(),
])
->tag('controller.argument_value_resolver', ['priority' => 110, 'name' => EntityValueResolver::class])
->set('doctrine.orm.entity_value_resolver.expression_language', ExpressionLanguage::class)
->set('doctrine.cache_clear_metadata_command', MetadataCommand::class)
->args([
service('doctrine.orm.command.entity_manager_provider'),
])
->tag('console.command', ['command' => 'doctrine:cache:clear-metadata'])
->set('doctrine.cache_clear_query_cache_command', QueryCommand::class)
->args([
service('doctrine.orm.command.entity_manager_provider'),
])
->tag('console.command', ['command' => 'doctrine:cache:clear-query'])
->set('doctrine.cache_clear_result_command', ResultCommand::class)
->args([
service('doctrine.orm.command.entity_manager_provider'),
])
->tag('console.command', ['command' => 'doctrine:cache:clear-result'])
->set('doctrine.cache_collection_region_command', CollectionRegionCommand::class)
->args([
service('doctrine.orm.command.entity_manager_provider'),
])
->tag('console.command', ['command' => 'doctrine:cache:clear-collection-region'])
->set('doctrine.mapping_convert_command', ConvertMappingCommand::class)
->args([
service('doctrine.orm.command.entity_manager_provider'),
])
->tag('console.command', ['command' => 'doctrine:mapping:convert'])
->set('doctrine.schema_create_command', CreateCommand::class)
->args([
service('doctrine.orm.command.entity_manager_provider'),
])
->tag('console.command', ['command' => 'doctrine:schema:create'])
->set('doctrine.schema_drop_command', DropCommand::class)
->args([
service('doctrine.orm.command.entity_manager_provider'),
])
->tag('console.command', ['command' => 'doctrine:schema:drop'])
->set('doctrine.ensure_production_settings_command', EnsureProductionSettingsCommand::class)
->args([
service('doctrine.orm.command.entity_manager_provider'),
])
->tag('console.command', ['command' => 'doctrine:ensure-production-settings'])
->set('doctrine.clear_entity_region_command', EntityRegionCommand::class)
->args([
service('doctrine.orm.command.entity_manager_provider'),
])
->tag('console.command', ['command' => 'doctrine:cache:clear-entity-region'])
->set('doctrine.mapping_info_command', InfoCommand::class)
->args([
service('doctrine.orm.command.entity_manager_provider'),
])
->tag('console.command', ['command' => 'doctrine:mapping:info'])
->set('doctrine.mapping_describe_command', MappingDescribeCommand::class)
->args([
service('doctrine.orm.command.entity_manager_provider'),
])
->tag('console.command', ['command' => 'doctrine:mapping:describe'])
->set('doctrine.clear_query_region_command', QueryRegionCommand::class)
->args([
service('doctrine.orm.command.entity_manager_provider'),
])
->tag('console.command', ['command' => 'doctrine:cache:clear-query-region'])
->set('doctrine.query_dql_command', RunDqlCommand::class)
->args([
service('doctrine.orm.command.entity_manager_provider'),
])
->tag('console.command', ['command' => 'doctrine:query:dql'])
->set('doctrine.schema_update_command', UpdateCommand::class)
->args([
service('doctrine.orm.command.entity_manager_provider'),
])
->tag('console.command', ['command' => 'doctrine:schema:update'])
->set('doctrine.schema_validate_command', ValidateSchemaCommand::class)
->args([
service('doctrine.orm.command.entity_manager_provider'),
])
->tag('console.command', ['command' => 'doctrine:schema:validate'])
->set('doctrine.mapping_import_command', ImportMappingDoctrineCommand::class)
->args([
service('doctrine'),
(string) param('kernel.bundles'),
])
->tag('console.command', ['command' => 'doctrine:mapping:import']);
};

View File

@@ -0,0 +1,296 @@
<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns="http://symfony.com/schema/dic/doctrine"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://symfony.com/schema/dic/doctrine"
elementFormDefault="qualified">
<xsd:element name="config">
<xsd:complexType>
<xsd:all>
<xsd:element name="dbal" type="dbal" minOccurs="0" maxOccurs="1" />
<xsd:element name="orm" type="orm" minOccurs="0" maxOccurs="1" />
</xsd:all>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="named_scalar">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<!-- DBAL configuration -->
<xsd:attributeGroup name="connection-config">
<xsd:attribute name="driver" type="xsd:string" />
<xsd:attribute name="driver-class" type="xsd:string" />
<xsd:attribute name="wrapper-class" type="xsd:string" />
<xsd:attribute name="keep-slave" type="xsd:string" />
<xsd:attribute name="keep-replica" type="xsd:string" />
<xsd:attribute name="platform-service" type="xsd:string" />
<xsd:attribute name="auto-commit" type="xsd:string" />
<xsd:attribute name="schema-filter" type="xsd:string" />
<xsd:attribute name="logging" type="xsd:string" default="false" />
<xsd:attribute name="profiling" type="xsd:string" default="false" />
<xsd:attribute name="profiling-collect-backtrace" type="xsd:string" default="false" />
<xsd:attribute name="profiling-collect-schema-errors" type="xsd:string" default="true" />
<xsd:attribute name="server-version" type="xsd:string" />
<xsd:attribute name="schema-manager-factory" type="xsd:string" />
<xsd:attribute name="result-cache" type="xsd:string" />
<xsd:attribute name="use-savepoints" type="xsd:boolean" />
<xsd:attribute name="disable-type-comments" type="xsd:boolean" />
<xsd:attributeGroup ref="driver-config" />
</xsd:attributeGroup>
<xsd:attributeGroup name="driver-config">
<xsd:attribute name="url" type="xsd:string" />
<xsd:attribute name="dbname" type="xsd:string" />
<xsd:attribute name="host" type="xsd:string" />
<xsd:attribute name="port" type="xsd:string" />
<xsd:attribute name="user" type="xsd:string" />
<xsd:attribute name="password" type="xsd:string" />
<xsd:attribute name="override-url" type="xsd:boolean" />
<xsd:attribute name="dbname-suffix" type="xsd:string" />
<xsd:attribute name="application-name" type="xsd:string" />
<xsd:attribute name="path" type="xsd:string" />
<xsd:attribute name="unix-socket" type="xsd:string" />
<xsd:attribute name="memory" type="xsd:string" />
<xsd:attribute name="charset" type="xsd:string" />
<xsd:attribute name="persistent" type="xsd:string" />
<xsd:attribute name="protocol" type="xsd:string" />
<xsd:attribute name="server" type="xsd:string" />
<xsd:attribute name="service" type="xsd:string" />
<xsd:attribute name="servicename" type="xsd:string" />
<xsd:attribute name="session-mode" type="xsd:string" />
<xsd:attribute name="default_dbname" type="xsd:string" />
<xsd:attribute name="sslmode" type="xsd:string" />
<xsd:attribute name="sslrootcert" type="xsd:string" />
<xsd:attribute name="sslcert" type="xsd:string" />
<xsd:attribute name="sslkey" type="xsd:string" />
<xsd:attribute name="sslcrl" type="xsd:string" />
<xsd:attribute name="pooled" type="xsd:string" />
<xsd:attribute name="multiple-active-result-sets" type="xsd:string" />
<xsd:attribute name="connectstring" type="xsd:string" />
<xsd:attribute name="instancename" type="xsd:string" />
</xsd:attributeGroup>
<xsd:group name="connection-child-config">
<xsd:choice>
<xsd:element name="option" type="option" />
<xsd:element name="mapping-type" type="named_scalar" />
<xsd:element name="slave" type="replica" />
<xsd:element name="replica" type="replica" />
<xsd:element name="default-table-option" type="named_scalar" />
</xsd:choice>
</xsd:group>
<xsd:complexType name="dbal">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="connection" type="connection" />
<xsd:element name="type" type="named_scalar" />
<xsd:element name="driver-scheme" type="driver_scheme" />
<xsd:group ref="connection-child-config" />
</xsd:choice>
<xsd:attribute name="default-connection" type="xsd:string" />
<xsd:attributeGroup ref="connection-config" />
</xsd:complexType>
<xsd:complexType name="driver_scheme">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="scheme" type="xsd:string" use="required" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="option">
<xsd:complexContent>
<xsd:extension base="xsd:anyType">
<xsd:attribute name="key" type="xsd:string" use="required" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="connection">
<xsd:group ref="connection-child-config" minOccurs="0" maxOccurs="unbounded" />
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attributeGroup ref="connection-config" />
</xsd:complexType>
<xsd:complexType name="replica">
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attributeGroup ref="driver-config" />
</xsd:complexType>
<!-- ORM configuration -->
<xsd:complexType name="mapping">
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="dir" type="xsd:string" />
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="prefix" type="xsd:string" />
<xsd:attribute name="is-bundle" type="xsd:string" />
</xsd:complexType>
<xsd:complexType name="orm">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="entity-manager" type="entity_manager" />
<xsd:element name="resolve-target-entity" type="resolve_target_entity" minOccurs="0" maxOccurs="unbounded" />
<xsd:group ref="entity-manager-child-config" />
</xsd:choice>
<xsd:attribute name="default-entity-manager" type="xsd:string" />
<xsd:attribute name="proxy-dir" type="xsd:string" />
<xsd:attribute name="proxy-namespace" type="xsd:string" />
<xsd:attribute name="auto-generate-proxy-classes" type="xsd:string" default="false" />
<xsd:attribute name="enable-lazy-ghost-objects" type="xsd:boolean" />
<xsd:attribute name="enable-native-lazy-objects" type="xsd:boolean" />
<xsd:attributeGroup ref="entity-manager-config" />
</xsd:complexType>
<xsd:complexType name="resolve_target_entity">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="interface" type="xsd:string" use="required" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:simpleType name="cache_driver_type">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="pool"/>
<xsd:enumeration value="service"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="cache_driver">
<xsd:attribute name="type" type="cache_driver_type" default="pool" />
<xsd:attribute name="id" type="xsd:string" />
<xsd:attribute name="pool" type="xsd:string" />
</xsd:complexType>
<xsd:complexType name="entity_listeners">
<xsd:choice minOccurs="1">
<xsd:element name="entity" type="entity_listeners_entity" minOccurs="1" maxOccurs="unbounded" />
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="entity_listeners_entity">
<xsd:choice minOccurs="1">
<xsd:element name="listener" type="entity_listeners_listener" minOccurs="1" maxOccurs="unbounded" />
</xsd:choice>
<xsd:attribute name="class" type="xsd:string" />
</xsd:complexType>
<xsd:complexType name="entity_listeners_listener">
<xsd:choice minOccurs="1">
<xsd:element name="event" type="entity_listeners_event" minOccurs="1" maxOccurs="unbounded" />
</xsd:choice>
<xsd:attribute name="class" type="xsd:string" />
</xsd:complexType>
<xsd:complexType name="entity_listeners_event">
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="method" type="xsd:string" />
</xsd:complexType>
<xsd:complexType name="entity_manager">
<xsd:group ref="entity-manager-child-config" minOccurs="0" maxOccurs="unbounded" />
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attributeGroup ref="entity-manager-config" />
</xsd:complexType>
<xsd:group name="entity-manager-child-config">
<xsd:choice>
<xsd:element name="mapping" type="mapping" />
<xsd:element name="metadata-cache-driver" type="cache_driver" minOccurs="0" maxOccurs="1" />
<xsd:element name="result-cache-driver" type="cache_driver" minOccurs="0" maxOccurs="1" />
<xsd:element name="query-cache-driver" type="cache_driver" minOccurs="0" maxOccurs="1" />
<xsd:element name="dql" type="dql" minOccurs="0" maxOccurs="1" />
<xsd:element name="hydrator" type="named_scalar" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="filter" type="filter" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="entity-listeners" type="entity_listeners" minOccurs="0" maxOccurs="1" />
<xsd:element name="second-level-cache" type="second-level-cache" minOccurs="0" maxOccurs="1" />
<xsd:element name="schema-ignore-class" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="identity-generation-preference" type="identity_generation_preference" minOccurs="0" maxOccurs="unbounded" />
</xsd:choice>
</xsd:group>
<xsd:attributeGroup name="entity-manager-config">
<xsd:attribute name="auto-mapping" type="xsd:string" />
<xsd:attribute name="connection" type="xsd:string" />
<xsd:attribute name="default-repository-class" type="xsd:string" />
<xsd:attribute name="class-metadata-factory-name" type="xsd:string" />
<xsd:attribute name="fetch-mode-subselect-batch-size" type="xsd:int" />
<xsd:attribute name="naming-strategy" type="xsd:string" />
<xsd:attribute name="quote-strategy" type="xsd:string" />
<xsd:attribute name="typed-field-mapper" type="xsd:string" />
<xsd:attribute name="entity-listener-resolver" type="xsd:string" />
<xsd:attribute name="repository-factory" type="xsd:string" />
<xsd:attribute name="report-fields-where-declared" type="xsd:boolean" />
<xsd:attribute name="validate-xml-mapping" type="xsd:boolean" />
</xsd:attributeGroup>
<xsd:complexType name="filter" mixed="true">
<xsd:choice minOccurs="0">
<xsd:element name="parameter" type="named_scalar" minOccurs="0" maxOccurs="unbounded" />
</xsd:choice>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="class" type="xsd:string" />
<xsd:attribute name="enabled" type="xsd:boolean" />
</xsd:complexType>
<xsd:complexType name="second-level-cache-region" mixed="true">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="cache-driver" type="cache_driver" minOccurs="0" maxOccurs="1" />
</xsd:choice>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="service" type="xsd:string" />
<xsd:attribute name="lifetime" type="xsd:integer" />
<xsd:attribute name="lock-lifetime" type="xsd:integer" />
<xsd:attribute name="cache-driver" type="xsd:string" />
</xsd:complexType>
<xsd:complexType name="second-level-cache-logger" mixed="true">
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="service" type="xsd:string" />
</xsd:complexType>
<xsd:complexType name="second-level-cache" mixed="true">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="logger" type="second-level-cache-logger" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="region" type="second-level-cache-region" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="region-cache-driver" type="cache_driver" minOccurs="0" maxOccurs="1" />
</xsd:choice>
<xsd:attribute name="enabled" type="xsd:boolean" default="true"/>
<xsd:attribute name="log-enabled" type="xsd:boolean" default="true"/>
<xsd:attribute name="factory" type="xsd:string" />
<xsd:attribute name="query-validator" type="xsd:string" />
<xsd:attribute name="region-lifetime" type="xsd:integer" />
<xsd:attribute name="region-lock-lifetime" type="xsd:integer" />
</xsd:complexType>
<xsd:complexType name="dql">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="string-function" type="named_scalar" />
<xsd:element name="numeric-function" type="named_scalar" />
<xsd:element name="datetime-function" type="named_scalar" />
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="identity_generation_preference">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="platform" type="xsd:string" use="required" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:schema>