config/services.yaml

Open in your IDE?
  1. # This file is the entry point to configure your own services.
  2. # Files in the packages/ subdirectory configure your dependencies.
  3. # Put parameters here that don't need to change on each machine where the app is deployed
  4. # https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
  5. parameters:
  6. #LG Symfony 4 début
  7. #    locale: 'en'
  8.     locale: '%env(locale)%'
  9.     paa_version: '%env(paa_version)%'
  10. #LG Symfony 4 fin
  11. # LG 20200514 début
  12.     ## Tentative de rédéfinir la classe de génération des URLs (selon https://stackoverflow.com/questions/46021326/symfony-3-3-custom-router)
  13.     ## -> échec : ces lignes ne sont pas prises en compte
  14.     #router.options.generator_class: App\PaaBundle\Routing\Generator\UrlGenerator
  15.     #router.options.generator_base_class: App\PaaBundle\Routing\Generator\UrlGenerator
  16. # LG 20200514 fin
  17. services:
  18.     # default configuration for services in *this* file
  19.     _defaults:
  20.         autowire: true      # Automatically injects dependencies in your services.
  21.         autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
  22.     # Décorer le routeur natif de Symfony, pour lui changer son génrateur d'URL
  23.     # selon https://stackoverflow.com/questions/55468435/symfony-4-2-how-to-decorate-the-urlgenerator
  24.     # et https://stackoverflow.com/questions/58268697/symfony-4-i-decorated-urlgeneratorinterface-but-its-not-used-it-uses-compile
  25.     app.decorator.router:
  26.         class: App\Service\RouterDecorator
  27.         decorates: 'router.default'
  28.         arguments: ['@app.decorator.router.inner']
  29.     # makes classes in src/ available to be used as services
  30.     # this creates a service per class whose id is the fully-qualified class name
  31.     App\:
  32.         resource: '../src/*'
  33.         #LG Symfony4 : old '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'
  34.         #Mettre dans Exclude tous les fichiers PHP qui ne doivent pas être autoloadés (ne contiennent pas de classe)
  35.         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}'
  36.     # controllers are imported separately to make sure services can be injected
  37.     # as action arguments even if you don't extend any base controller class
  38.     App\PaaBundle\Controller\:
  39.         resource: '../src/PaaBundle/Controller'
  40.         tags: ['controller.service_arguments']
  41.     PAA_user_manager:
  42.         class: App\PaaBundle\Security\UserManager
  43.         arguments: ["@fos_user.util.password_updater", "@fos_user.util.canonical_fields_updater", "@doctrine", "@session", "@request_stack", "%fos_user.model.user.class%"]
  44.     auth_token_authenticator:
  45.         class:     App\PaaBundle\Security\AuthTokenAuthenticator
  46.         arguments: ["@security.http_utils"]
  47.         public:    false
  48.     auth_token_user_provider:
  49.         class: App\PaaBundle\Security\AuthTokenUserProvider
  50.         arguments: ["@auth_token_repository", "@user_repository"]
  51.         public:    false
  52.     auth_token_repository:
  53.         class:   Doctrine\ORM\EntityManager
  54.         factory: ["@doctrine.orm.entity_manager", "getRepository"]
  55.         arguments: ["PaaBundle:AuthToken"]
  56.     user_repository:
  57.         class:   Doctrine\ORM\EntityManager
  58.         factory: ["@doctrine.orm.entity_manager", "getRepository"]
  59.         arguments: ["PaaBundle:users"]
  60.         # "User" changé en "users"
  61.     paabundle.component.authentication.handler.login_success_handler:
  62.         class: App\PaaBundle\Component\Authentication\Handler\LoginSuccessHandler
  63.         arguments: ["@service_container", "@router", "@doctrine"]
  64.         tags:
  65.             - { name: 'monolog.logger', channel: 'security' }
  66.     # LG 20240411
  67.     paabundle.component.authentication.handler.login_failure_handler:
  68.         class: App\PaaBundle\Component\Authentication\Handler\LoginSuccessHandler
  69.         arguments: ["@service_container", "@router", "@doctrine"]
  70.         tags:
  71.             - { name: 'monolog.logger', channel: 'security' }
  72.     #Gestionnaire de timeout de l'authentification par FOS_User
  73.     paabundle.handler.session_idle:
  74.         class: App\PaaBundle\Component\Authentication\Handler\SessionIdleHandler
  75.         arguments: ["@session", "@security.token_storage", "@security.authorization_checker", "@router", '%env(resolve:session_max_idle_time)%']
  76.         tags:
  77.             - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }      
  78.     
  79.     # LG 20230905 déac car fait double emploi avec paabundle.handler.session_idle
  80.     # # AV 20230413 : création d'un service pour la gestion du temps restant des sessions
  81.     # app.testGetTempsSessionRestant:
  82.     #     class:  App\PaaBundle\Component\EventListener\AVIRER_testGetTempsSessionRestant
  83.     #     tags:
  84.     #         - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
  85.     
  86.     # Gestionnaire des exceptions ApiExceptionInterface (est-ce fonctionnel ????)
  87. # LG 20240409 old    App\Event\ExceptionListener:
  88.     App\Event\ApiExceptionListener:
  89.         arguments:
  90. # LG 20240409 déac            - '@monolog.logger.api'
  91.             - '%kernel.project_dir%'      # LG 02240409
  92.         tags:
  93.             - { name: kernel.event_listener, event: kernel.exception, method: onKernelException }
  94.     # LG 02240409
  95.     # Gestionnaire des attaques par force brute (HTTPNotFound, erreur d'authentification)
  96.     App\Event\ForceBruteListener:
  97.         arguments:
  98. #            - '@monolog.logger.api'
  99.             - '%kernel.project_dir%'      # LG 02240409
  100.             - "@doctrine"
  101. #            - "@security"
  102.         tags:
  103.             - { name: kernel.event_listener, event: kernel.exception, method: onKernelException }
  104.             - { name: kernel.event_listener, event: kernel.controller, method: onKernelController }
  105.     # Appel de la classe ExceptionListener lors d'une exception
  106.     App\PaaBundle\Component\EventListener\ExceptionListener:
  107.         tags:
  108.             - { name: kernel.event_listener, event: kernel.exception }
  109.         arguments:
  110.             # Pour fournir au ExceptionListener le chemin vers le répertoire de l'application
  111.             - '%kernel.project_dir%'
  112.     
  113.     # Configuration de la gestion d'erreur en mode dev (supprimer ces lignes remet la gestion d'erreur en mode prod)
  114.     App\PaaBundle\Controller\ErrorController:
  115.         public: true
  116.         arguments:
  117.             $debug: '%kernel.debug%'    
  118.     #LG 20230926 essai, selon https://stackoverflow.com/questions/58975182/deprecation-doctrine-orm-mapping-underscorenamingstrategy-without-making-it-num 
  119.     doctrine.orm.naming_strategy.custom_doctrine_orm_naming_strategy_underscore:
  120.       class: Doctrine\ORM\Mapping\UnderscoreNamingStrategy
  121.       arguments:
  122.           - 0
  123.           - true