doctrine: dbal: url: '%env(resolve:DATABASE_URL)%' profiling_collect_backtrace: '%kernel.debug%' # Voir docs/01-architecture-proposal.md §3.6 « Pièges MariaDB ». # # utf8mb4_uca1400_ai_ci (MariaDB >= 10.10) donne une recherche naturelle et # accent-insensible sur les VALEURS de traduction — ce que veut un traducteur # qui cherche « eleve » et doit trouver « élève ». # # ATTENTION : cette collation est aussi case-insensible. La colonne # translation_key.key_path la surcharge explicitement en utf8mb4_bin, sinon # `Header.Login` et `header.login` seraient considérées comme une seule clé. default_table_options: charset: utf8mb4 collation: utf8mb4_uca1400_ai_ci orm: validate_xml_mapping: true naming_strategy: doctrine.orm.naming_strategy.underscore auto_mapping: true mappings: App: type: attribute is_bundle: false dir: '%kernel.project_dir%/src/Entity' prefix: 'App\Entity' alias: App # Isolation multi-tenant (décision 1). Le filtre est déclaré ici mais son # activation est pilotée par TenantContextListener : actif par défaut sur # toute requête authentifiée, désactivable explicitement pour les commandes # de maintenance. L'inverse — désactivé par défaut — est la recette d'une # fuite inter-organisation. filters: organization: class: App\Doctrine\Filter\OrganizationFilter enabled: false when@test: doctrine: dbal: # "TEST_TOKEN" est positionné par ParaTest dbname_suffix: '_test%env(default::TEST_TOKEN)%' when@prod: doctrine: orm: query_cache_driver: type: pool pool: doctrine.system_cache_pool result_cache_driver: type: pool pool: doctrine.result_cache_pool framework: cache: pools: doctrine.result_cache_pool: adapter: cache.app doctrine.system_cache_pool: adapter: cache.system