# This file is the entry point to configure your own services.
# Files in the packages/ subdirectory configure your dependencies.
# Put parameters here that don't need to change on each machine where the app is deployed
# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
parameters:
#LG Symfony 4 début
# locale: 'en'
locale: '%env(locale)%'
paa_version: '%env(paa_version)%'
#LG Symfony 4 fin
# LG 20200514 début
## Tentative de rédéfinir la classe de génération des URLs (selon https://stackoverflow.com/questions/46021326/symfony-3-3-custom-router)
## -> échec : ces lignes ne sont pas prises en compte
#router.options.generator_class: App\PaaBundle\Routing\Generator\UrlGenerator
#router.options.generator_base_class: App\PaaBundle\Routing\Generator\UrlGenerator
# LG 20200514 fin
services:
# default configuration for services in *this* file
_defaults:
autowire: true # Automatically injects dependencies in your services.
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
# Décorer le routeur natif de Symfony, pour lui changer son génrateur d'URL
# selon https://stackoverflow.com/questions/55468435/symfony-4-2-how-to-decorate-the-urlgenerator
# et https://stackoverflow.com/questions/58268697/symfony-4-i-decorated-urlgeneratorinterface-but-its-not-used-it-uses-compile
app.decorator.router:
class: App\Service\RouterDecorator
decorates: 'router.default'
arguments: ['@app.decorator.router.inner']
# makes classes in src/ available to be used as services
# this creates a service per class whose id is the fully-qualified class name
App\:
resource: '../src/*'
#LG Symfony4 : old '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'
#Mettre dans Exclude tous les fichiers PHP qui ne doivent pas être autoloadés (ne contiennent pas de classe)
exclude: '../src/{Limoog/PartageBundle/Component,PaaBundle/Component/AAA_essaiDeComponent.php,Command/{MaJBDDScript.php,MaJChangelogScript.php,GenMaJChangelogScript.php},PaaBundle/Component/Paa/{DataPAA_PG.php,Paa.php,MaJBDDScript.php,planning.php,ressources.php,ressources_Class.php},PaaBundle\Resources\editions,DependencyInjection,Entity,Migrations,Tests,Kernel.php}'
# controllers are imported separately to make sure services can be injected
# as action arguments even if you don't extend any base controller class
App\PaaBundle\Controller\:
resource: '../src/PaaBundle/Controller'
tags: ['controller.service_arguments']
PAA_user_manager:
class: App\PaaBundle\Security\UserManager
arguments: ["@fos_user.util.password_updater", "@fos_user.util.canonical_fields_updater", "@doctrine", "@session", "@request_stack", "%fos_user.model.user.class%"]
auth_token_authenticator:
class: App\PaaBundle\Security\AuthTokenAuthenticator
arguments: ["@security.http_utils"]
public: false
auth_token_user_provider:
class: App\PaaBundle\Security\AuthTokenUserProvider
arguments: ["@auth_token_repository", "@user_repository"]
public: false
auth_token_repository:
class: Doctrine\ORM\EntityManager
factory: ["@doctrine.orm.entity_manager", "getRepository"]
arguments: ["PaaBundle:AuthToken"]
user_repository:
class: Doctrine\ORM\EntityManager
factory: ["@doctrine.orm.entity_manager", "getRepository"]
arguments: ["PaaBundle:users"]
# "User" changé en "users"
paabundle.component.authentication.handler.login_success_handler:
class: App\PaaBundle\Component\Authentication\Handler\LoginSuccessHandler
arguments: ["@service_container", "@router", "@doctrine"]
tags:
- { name: 'monolog.logger', channel: 'security' }
# LG 20240411
paabundle.component.authentication.handler.login_failure_handler:
class: App\PaaBundle\Component\Authentication\Handler\LoginSuccessHandler
arguments: ["@service_container", "@router", "@doctrine"]
tags:
- { name: 'monolog.logger', channel: 'security' }
#Gestionnaire de timeout de l'authentification par FOS_User
paabundle.handler.session_idle:
class: App\PaaBundle\Component\Authentication\Handler\SessionIdleHandler
arguments: ["@session", "@security.token_storage", "@security.authorization_checker", "@router", '%env(resolve:session_max_idle_time)%']
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
# LG 20230905 déac car fait double emploi avec paabundle.handler.session_idle
# # AV 20230413 : création d'un service pour la gestion du temps restant des sessions
# app.testGetTempsSessionRestant:
# class: App\PaaBundle\Component\EventListener\AVIRER_testGetTempsSessionRestant
# tags:
# - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
# Gestionnaire des exceptions ApiExceptionInterface (est-ce fonctionnel ????)
# LG 20240409 old App\Event\ExceptionListener:
App\Event\ApiExceptionListener:
arguments:
# LG 20240409 déac - '@monolog.logger.api'
- '%kernel.project_dir%' # LG 02240409
tags:
- { name: kernel.event_listener, event: kernel.exception, method: onKernelException }
# LG 02240409
# Gestionnaire des attaques par force brute (HTTPNotFound, erreur d'authentification)
App\Event\ForceBruteListener:
arguments:
# - '@monolog.logger.api'
- '%kernel.project_dir%' # LG 02240409
- "@doctrine"
# - "@security"
tags:
- { name: kernel.event_listener, event: kernel.exception, method: onKernelException }
- { name: kernel.event_listener, event: kernel.controller, method: onKernelController }
# Appel de la classe ExceptionListener lors d'une exception
App\PaaBundle\Component\EventListener\ExceptionListener:
tags:
- { name: kernel.event_listener, event: kernel.exception }
arguments:
# Pour fournir au ExceptionListener le chemin vers le répertoire de l'application
- '%kernel.project_dir%'
# Configuration de la gestion d'erreur en mode dev (supprimer ces lignes remet la gestion d'erreur en mode prod)
App\PaaBundle\Controller\ErrorController:
public: true
arguments:
$debug: '%kernel.debug%'
#LG 20230926 essai, selon https://stackoverflow.com/questions/58975182/deprecation-doctrine-orm-mapping-underscorenamingstrategy-without-making-it-num
doctrine.orm.naming_strategy.custom_doctrine_orm_naming_strategy_underscore:
class: Doctrine\ORM\Mapping\UnderscoreNamingStrategy
arguments:
- 0
- true