Skip to content

Instantly share code, notes, and snippets.

@kaznovac
Created December 2, 2022 09:10
Show Gist options
  • Save kaznovac/6a5af2fe86e9d48ede3aed270b62b0a9 to your computer and use it in GitHub Desktop.
Save kaznovac/6a5af2fe86e9d48ede3aed270b62b0a9 to your computer and use it in GitHub Desktop.
Symfony Doctrine Bundle PHP configuration
<?php
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
use Symfony\Config\DoctrineConfig;
use Symfony\Config\FrameworkConfig;
return static function (DoctrineConfig $doctrine, ContainerConfigurator $container, FrameworkConfig $framework): void {
$dbal = $doctrine->dbal();
$dbal->defaultConnection('default');
$orm = $doctrine->orm();
$orm->defaultEntityManager('default');
$orm->autoGenerateProxyClasses(true);
$connection = $dbal->connection('default');
$connection->url(env('DATABASE_URL')->resolve());
$entityManager = $orm->entityManager('default');
$entityManager->autoMapping(true)
->namingStrategy('doctrine.orm.naming_strategy.underscore_number_aware')
;
$entityManager->mapping('App')
->isBundle(false)
->dir(param('kernel.project_dir') . '/src/Entity')
->prefix('App\Entity')
->alias('App')
;
if ('test' === $container->env()) {
$connection->dbnameSuffix('_test' . env('TEST_TOKEN')->default(''));
}
if ('prod' === $container->env()) {
$orm->autoGenerateProxyClasses(false);
$entityManager->queryCacheDriver()
->type('pool')
->pool('doctrine.system_cache_pool')
;
$entityManager->resultCacheDriver()
->type('pool')
->pool('doctrine.result_cache_pool')
;
$cache = $framework->cache();
$cache->pool('doctrine.result_cache_pool')
->adapters('cache.app')
;
$cache->pool('doctrine.system_cache_pool')
->adapters('cache.system')
;
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment