vendor/symfony/framework-bundle/Resources/config/web.php line 35

  1. <?php
  2. /*
  3.  * This file is part of the Symfony package.
  4.  *
  5.  * (c) Fabien Potencier <fabien@symfony.com>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace Symfony\Component\DependencyInjection\Loader\Configurator;
  11. use Symfony\Bundle\FrameworkBundle\Controller\ControllerResolver;
  12. use Symfony\Component\HttpKernel\Controller\ArgumentResolver;
  13. use Symfony\Component\HttpKernel\Controller\ArgumentResolver\BackedEnumValueResolver;
  14. use Symfony\Component\HttpKernel\Controller\ArgumentResolver\DateTimeValueResolver;
  15. use Symfony\Component\HttpKernel\Controller\ArgumentResolver\DefaultValueResolver;
  16. use Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestAttributeValueResolver;
  17. use Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestValueResolver;
  18. use Symfony\Component\HttpKernel\Controller\ArgumentResolver\ServiceValueResolver;
  19. use Symfony\Component\HttpKernel\Controller\ArgumentResolver\SessionValueResolver;
  20. use Symfony\Component\HttpKernel\Controller\ArgumentResolver\UidValueResolver;
  21. use Symfony\Component\HttpKernel\Controller\ArgumentResolver\VariadicValueResolver;
  22. use Symfony\Component\HttpKernel\Controller\ErrorController;
  23. use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactory;
  24. use Symfony\Component\HttpKernel\EventListener\CacheAttributeListener;
  25. use Symfony\Component\HttpKernel\EventListener\DisallowRobotsIndexingListener;
  26. use Symfony\Component\HttpKernel\EventListener\ErrorListener;
  27. use Symfony\Component\HttpKernel\EventListener\LocaleListener;
  28. use Symfony\Component\HttpKernel\EventListener\ResponseListener;
  29. use Symfony\Component\HttpKernel\EventListener\ValidateRequestListener;
  30. return static function (ContainerConfigurator $container) {
  31.     $container->services()
  32.         ->set('controller_resolver'ControllerResolver::class)
  33.             ->args([
  34.                 service('service_container'),
  35.                 service('logger')->ignoreOnInvalid(),
  36.             ])
  37.             ->tag('monolog.logger', ['channel' => 'request'])
  38.         ->set('argument_metadata_factory'ArgumentMetadataFactory::class)
  39.         ->set('argument_resolver'ArgumentResolver::class)
  40.             ->args([
  41.                 service('argument_metadata_factory'),
  42.                 abstract_arg('argument value resolvers'),
  43.             ])
  44.         ->set('argument_resolver.backed_enum_resolver'BackedEnumValueResolver::class)
  45.             ->tag('controller.argument_value_resolver', ['priority' => 100])
  46.         ->set('argument_resolver.uid'UidValueResolver::class)
  47.             ->tag('controller.argument_value_resolver', ['priority' => 100])
  48.         ->set('argument_resolver.datetime'DateTimeValueResolver::class)
  49.             ->tag('controller.argument_value_resolver', ['priority' => 100])
  50.         ->set('argument_resolver.request_attribute'RequestAttributeValueResolver::class)
  51.             ->tag('controller.argument_value_resolver', ['priority' => 100])
  52.         ->set('argument_resolver.request'RequestValueResolver::class)
  53.             ->tag('controller.argument_value_resolver', ['priority' => 50])
  54.         ->set('argument_resolver.session'SessionValueResolver::class)
  55.             ->tag('controller.argument_value_resolver', ['priority' => 50])
  56.         ->set('argument_resolver.service'ServiceValueResolver::class)
  57.             ->args([
  58.                 abstract_arg('service locator, set in RegisterControllerArgumentLocatorsPass'),
  59.             ])
  60.             ->tag('controller.argument_value_resolver', ['priority' => -50])
  61.         ->set('argument_resolver.default'DefaultValueResolver::class)
  62.             ->tag('controller.argument_value_resolver', ['priority' => -100])
  63.         ->set('argument_resolver.variadic'VariadicValueResolver::class)
  64.             ->tag('controller.argument_value_resolver', ['priority' => -150])
  65.         ->set('response_listener'ResponseListener::class)
  66.             ->args([
  67.                 param('kernel.charset'),
  68.                 abstract_arg('The "set_content_language_from_locale" config value'),
  69.             ])
  70.             ->tag('kernel.event_subscriber')
  71.         ->set('locale_listener'LocaleListener::class)
  72.             ->args([
  73.                 service('request_stack'),
  74.                 param('kernel.default_locale'),
  75.                 service('router')->ignoreOnInvalid(),
  76.                 abstract_arg('The "set_locale_from_accept_language" config value'),
  77.                 param('kernel.enabled_locales'),
  78.             ])
  79.             ->tag('kernel.event_subscriber')
  80.         ->set('validate_request_listener'ValidateRequestListener::class)
  81.             ->tag('kernel.event_subscriber')
  82.         ->set('disallow_search_engine_index_response_listener'DisallowRobotsIndexingListener::class)
  83.             ->tag('kernel.event_subscriber')
  84.         ->set('error_controller'ErrorController::class)
  85.             ->public()
  86.             ->args([
  87.                 service('http_kernel'),
  88.                 param('kernel.error_controller'),
  89.                 service('error_renderer'),
  90.             ])
  91.         ->set('exception_listener'ErrorListener::class)
  92.             ->args([
  93.                 param('kernel.error_controller'),
  94.                 service('logger')->nullOnInvalid(),
  95.                 param('kernel.debug'),
  96.                 abstract_arg('an exceptions to log & status code mapping'),
  97.             ])
  98.             ->tag('kernel.event_subscriber')
  99.             ->tag('monolog.logger', ['channel' => 'request'])
  100.         ->set('controller.cache_attribute_listener'CacheAttributeListener::class)
  101.             ->tag('kernel.event_subscriber')
  102.     ;
  103. };