vendor/symfony/framework-bundle/Resources/config/services.php line 120

Open in your IDE?
  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\CacheWarmer\ConfigBuilderCacheWarmer;
  12. use Symfony\Bundle\FrameworkBundle\HttpCache\HttpCache;
  13. use Symfony\Component\Config\Resource\SelfCheckingResourceChecker;
  14. use Symfony\Component\Config\ResourceCheckerConfigCacheFactory;
  15. use Symfony\Component\Console\ConsoleEvents;
  16. use Symfony\Component\DependencyInjection\Config\ContainerParametersResourceChecker;
  17. use Symfony\Component\DependencyInjection\EnvVarProcessor;
  18. use Symfony\Component\DependencyInjection\ParameterBag\ContainerBag;
  19. use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;
  20. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  21. use Symfony\Component\DependencyInjection\ReverseContainer;
  22. use Symfony\Component\EventDispatcher\EventDispatcher;
  23. use Symfony\Component\EventDispatcher\EventDispatcherInterface as EventDispatcherInterfaceComponentAlias;
  24. use Symfony\Component\Filesystem\Filesystem;
  25. use Symfony\Component\Form\FormEvents;
  26. use Symfony\Component\HttpFoundation\RequestStack;
  27. use Symfony\Component\HttpFoundation\UrlHelper;
  28. use Symfony\Component\HttpKernel\CacheClearer\ChainCacheClearer;
  29. use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerAggregate;
  30. use Symfony\Component\HttpKernel\Config\FileLocator;
  31. use Symfony\Component\HttpKernel\DependencyInjection\ServicesResetter;
  32. use Symfony\Component\HttpKernel\EventListener\LocaleAwareListener;
  33. use Symfony\Component\HttpKernel\HttpCache\Store;
  34. use Symfony\Component\HttpKernel\HttpCache\StoreInterface;
  35. use Symfony\Component\HttpKernel\HttpKernel;
  36. use Symfony\Component\HttpKernel\HttpKernelInterface;
  37. use Symfony\Component\HttpKernel\KernelEvents;
  38. use Symfony\Component\HttpKernel\KernelInterface;
  39. use Symfony\Component\HttpKernel\UriSigner;
  40. use Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner;
  41. use Symfony\Component\Runtime\Runner\Symfony\ResponseRunner;
  42. use Symfony\Component\Runtime\SymfonyRuntime;
  43. use Symfony\Component\String\LazyString;
  44. use Symfony\Component\String\Slugger\AsciiSlugger;
  45. use Symfony\Component\String\Slugger\SluggerInterface;
  46. use Symfony\Component\Workflow\WorkflowEvents;
  47. use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
  48. return static function (ContainerConfigurator $container) {
  49.     // this parameter is used at compile time in RegisterListenersPass
  50.     $container->parameters()->set('event_dispatcher.event_aliases'array_merge(
  51.         class_exists(ConsoleEvents::class) ? ConsoleEvents::ALIASES : [],
  52.         class_exists(FormEvents::class) ? FormEvents::ALIASES : [],
  53.         KernelEvents::ALIASES,
  54.         class_exists(WorkflowEvents::class) ? WorkflowEvents::ALIASES : []
  55.     ));
  56.     $container->services()
  57.         ->set('parameter_bag'ContainerBag::class)
  58.             ->args([
  59.                 service('service_container'),
  60.             ])
  61.         ->alias(ContainerBagInterface::class, 'parameter_bag')
  62.         ->alias(ParameterBagInterface::class, 'parameter_bag')
  63.         ->set('event_dispatcher'EventDispatcher::class)
  64.             ->public()
  65.             ->tag('container.hot_path')
  66.             ->tag('event_dispatcher.dispatcher', ['name' => 'event_dispatcher'])
  67.         ->alias(EventDispatcherInterfaceComponentAlias::class, 'event_dispatcher')
  68.         ->alias(EventDispatcherInterface::class, 'event_dispatcher')
  69.         ->set('http_kernel'HttpKernel::class)
  70.             ->public()
  71.             ->args([
  72.                 service('event_dispatcher'),
  73.                 service('controller_resolver'),
  74.                 service('request_stack'),
  75.                 service('argument_resolver'),
  76.             ])
  77.             ->tag('container.hot_path')
  78.             ->tag('container.preload', ['class' => HttpKernelRunner::class])
  79.             ->tag('container.preload', ['class' => ResponseRunner::class])
  80.             ->tag('container.preload', ['class' => SymfonyRuntime::class])
  81.         ->alias(HttpKernelInterface::class, 'http_kernel')
  82.         ->set('request_stack'RequestStack::class)
  83.             ->public()
  84.         ->alias(RequestStack::class, 'request_stack')
  85.         ->set('http_cache'HttpCache::class)
  86.             ->args([
  87.                 service('kernel'),
  88.                 service('http_cache.store'),
  89.                 service('esi')->nullOnInvalid(),
  90.                 abstract_arg('options'),
  91.             ])
  92.             ->tag('container.hot_path')
  93.         ->set('http_cache.store'Store::class)
  94.             ->args([
  95.                 param('kernel.cache_dir').'/http_cache',
  96.             ])
  97.         ->alias(StoreInterface::class, 'http_cache.store')
  98.         ->set('url_helper'UrlHelper::class)
  99.             ->args([
  100.                 service('request_stack'),
  101.                 service('router.request_context')->ignoreOnInvalid(),
  102.             ])
  103.         ->alias(UrlHelper::class, 'url_helper')
  104.         ->set('cache_warmer'CacheWarmerAggregate::class)
  105.             ->public()
  106.             ->args([
  107.                 tagged_iterator('kernel.cache_warmer'),
  108.                 param('kernel.debug'),
  109.                 sprintf('%s/%sDeprecations.log'param('kernel.build_dir'), param('kernel.container_class')),
  110.             ])
  111.             ->tag('container.no_preload')
  112.         ->set('cache_clearer'ChainCacheClearer::class)
  113.             ->public()
  114.             ->args([
  115.                 tagged_iterator('kernel.cache_clearer'),
  116.             ])
  117.             ->tag('container.private', ['package' => 'symfony/framework-bundle''version' => '5.2'])
  118.         ->set('kernel')
  119.             ->synthetic()
  120.             ->public()
  121.         ->alias(KernelInterface::class, 'kernel')
  122.         ->set('filesystem'Filesystem::class)
  123.             ->public()
  124.             ->tag('container.private', ['package' => 'symfony/framework-bundle''version' => '5.2'])
  125.         ->alias(Filesystem::class, 'filesystem')
  126.         ->set('file_locator'FileLocator::class)
  127.             ->args([
  128.                 service('kernel'),
  129.             ])
  130.         ->alias(FileLocator::class, 'file_locator')
  131.         ->set('uri_signer'UriSigner::class)
  132.             ->args([
  133.                 param('kernel.secret'),
  134.             ])
  135.         ->alias(UriSigner::class, 'uri_signer')
  136.         ->set('config_cache_factory'ResourceCheckerConfigCacheFactory::class)
  137.             ->args([
  138.                 tagged_iterator('config_cache.resource_checker'),
  139.             ])
  140.         ->set('dependency_injection.config.container_parameters_resource_checker'ContainerParametersResourceChecker::class)
  141.             ->args([
  142.                 service('service_container'),
  143.             ])
  144.             ->tag('config_cache.resource_checker', ['priority' => -980])
  145.         ->set('config.resource.self_checking_resource_checker'SelfCheckingResourceChecker::class)
  146.             ->tag('config_cache.resource_checker', ['priority' => -990])
  147.         ->set('services_resetter'ServicesResetter::class)
  148.             ->public()
  149.         ->set('reverse_container'ReverseContainer::class)
  150.             ->args([
  151.                 service('service_container'),
  152.                 service_locator([]),
  153.             ])
  154.         ->alias(ReverseContainer::class, 'reverse_container')
  155.         ->set('locale_aware_listener'LocaleAwareListener::class)
  156.             ->args([
  157.                 [], // locale aware services
  158.                 service('request_stack'),
  159.             ])
  160.             ->tag('kernel.event_subscriber')
  161.         ->set('container.env_var_processor'EnvVarProcessor::class)
  162.             ->args([
  163.                 service('service_container'),
  164.                 tagged_iterator('container.env_var_loader'),
  165.             ])
  166.             ->tag('container.env_var_processor')
  167.         ->set('slugger'AsciiSlugger::class)
  168.             ->args([
  169.                 param('kernel.default_locale'),
  170.             ])
  171.             ->tag('kernel.locale_aware')
  172.         ->alias(SluggerInterface::class, 'slugger')
  173.         ->set('container.getenv'\Closure::class)
  174.             ->factory([\Closure::class, 'fromCallable'])
  175.             ->args([
  176.                 [service('service_container'), 'getEnv'],
  177.             ])
  178.             ->tag('routing.expression_language_function', ['function' => 'env'])
  179.         // inherit from this service to lazily access env vars
  180.         ->set('container.env'LazyString::class)
  181.             ->abstract()
  182.             ->factory([LazyString::class, 'fromCallable'])
  183.             ->args([
  184.                 service('container.getenv'),
  185.             ])
  186.         ->set('config_builder.warmer'ConfigBuilderCacheWarmer::class)
  187.             ->args([service(KernelInterface::class), service('logger')->nullOnInvalid()])
  188.             ->tag('kernel.cache_warmer')
  189.     ;
  190. };