futtern/config/packages/doctrine.php

69 lines
2.4 KiB
PHP
Raw Normal View History

2024-02-05 15:16:43 +00:00
<?php declare(strict_types=1);
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {
2024-06-09 14:43:34 +00:00
$containerConfigurator->extension('doctrine', [
'dbal' => [
'url' => '%env(resolve:DATABASE_URL)%',
'profiling_collect_backtrace' => '%kernel.debug%',
'use_savepoints' => true,
],
'orm' => [
'auto_generate_proxy_classes' => true,
'enable_lazy_ghost_objects' => true,
'report_fields_where_declared' => true,
'validate_xml_mapping' => true,
'naming_strategy' => 'doctrine.orm.naming_strategy.underscore_number_aware',
'auto_mapping' => true,
'mappings' => [
'App' => [
'type' => 'attribute',
'is_bundle' => false,
'dir' => '%kernel.project_dir%/src/Entity',
'prefix' => 'App\Entity',
'alias' => 'App',
2024-02-05 15:16:43 +00:00
],
],
2024-06-09 14:43:34 +00:00
'controller_resolver' => [
'auto_mapping' => false,
],
2024-02-05 15:16:43 +00:00
],
2024-06-09 14:43:34 +00:00
]);
2024-02-05 15:16:43 +00:00
if ($containerConfigurator->env() === 'test') {
2024-06-09 14:43:34 +00:00
$containerConfigurator->extension('doctrine', [
'dbal' => [
'dbname_suffix' => '_test%env(default::TEST_TOKEN)%',
2024-02-05 15:16:43 +00:00
],
2024-06-09 14:43:34 +00:00
]);
2024-02-05 15:16:43 +00:00
}
if ($containerConfigurator->env() === 'prod') {
2024-06-09 14:43:34 +00:00
$containerConfigurator->extension('doctrine', [
'orm' => [
'auto_generate_proxy_classes' => false,
'proxy_dir' => '%kernel.build_dir%/doctrine/orm/Proxies',
'query_cache_driver' => [
'type' => 'pool',
'pool' => 'doctrine.system_cache_pool',
],
'result_cache_driver' => [
'type' => 'pool',
'pool' => 'doctrine.result_cache_pool',
2024-02-05 15:16:43 +00:00
],
],
2024-06-09 14:43:34 +00:00
]);
$containerConfigurator->extension('framework', [
'cache' => [
'pools' => [
'doctrine.result_cache_pool' => [
'adapter' => 'cache.app',
],
'doctrine.system_cache_pool' => [
'adapter' => 'cache.system',
2024-02-05 15:16:43 +00:00
],
],
],
2024-06-09 14:43:34 +00:00
]);
2024-02-05 15:16:43 +00:00
}
};