Merge branch 'add-doctrine-dbal-configuration-in-the-bundle' into 'master'

Add Doctrine DBAL postgis configuration in the bundle.

See merge request Chill-Projet/chill-bundles!65
This commit is contained in:
Julien Fastré 2021-05-25 16:52:23 +00:00
commit 73790db700

View File

@ -35,6 +35,8 @@ use Chill\MainBundle\Doctrine\DQL\OverlapsI;
use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Definition;
use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\DependencyInjection\Reference;
use Chill\MainBundle\Doctrine\DQL\Replace; use Chill\MainBundle\Doctrine\DQL\Replace;
use Chill\MainBundle\Doctrine\Type\NativeDateIntervalType;
use Chill\MainBundle\Doctrine\Type\PointType;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
/** /**
@ -167,37 +169,49 @@ class ChillMainExtension extends Extension implements PrependExtensionInterface,
$container->prependExtensionConfig('twig', $twigConfig); $container->prependExtensionConfig('twig', $twigConfig);
//add DQL function to ORM (default entity_manager) //add DQL function to ORM (default entity_manager)
$container->prependExtensionConfig('doctrine', array( $container
'orm' => array( ->prependExtensionConfig(
'dql' => array( 'doctrine',
'string_functions' => array( [
'orm' => [
'dql' => [
'string_functions' => [
'unaccent' => Unaccent::class, 'unaccent' => Unaccent::class,
'GET_JSON_FIELD_BY_KEY' => GetJsonFieldByKey::class, 'GET_JSON_FIELD_BY_KEY' => GetJsonFieldByKey::class,
'AGGREGATE' => JsonAggregate::class, 'AGGREGATE' => JsonAggregate::class,
'REPLACE' => Replace::class, 'REPLACE' => Replace::class,
), ],
'numeric_functions' => [ 'numeric_functions' => [
'JSONB_EXISTS_IN_ARRAY' => JsonbExistsInArray::class, 'JSONB_EXISTS_IN_ARRAY' => JsonbExistsInArray::class,
'SIMILARITY' => Similarity::class, 'SIMILARITY' => Similarity::class,
'OVERLAPSI' => OverlapsI::class 'OVERLAPSI' => OverlapsI::class,
] ],
) ],
) ],
)); ],
);
//add dbal types (default entity_manager) //add dbal types (default entity_manager)
$container->prependExtensionConfig('doctrine', array( $container
->prependExtensionConfig(
'doctrine',
[
'dbal' => [ 'dbal' => [
// This is mandatory since we are using postgis as database.
'mapping_types' => [
'geometry' => 'string',
],
'types' => [ 'types' => [
'dateinterval' => [ 'dateinterval' => [
'class' => \Chill\MainBundle\Doctrine\Type\NativeDateIntervalType::class 'class' => NativeDateIntervalType::class
], ],
'point' => [ 'point' => [
'class' => \Chill\MainBundle\Doctrine\Type\PointType::class 'class' => PointType::class
] ]
] ]
] ]
)); ]
);
//add current route to chill main //add current route to chill main
$container->prependExtensionConfig('chill_main', array( $container->prependExtensionConfig('chill_main', array(