Browse Source

Use container to retrieve request instead of request_stack

tags/2.3.1
Steevan BARBOYON 7 years ago
parent
commit
84d6cc1a13
2 changed files with 11 additions and 7 deletions
  1. 10
    6
      EventListener/DefineLocaleEventListener.php
  2. 1
    1
      Resources/config/services.yml

+ 10
- 6
EventListener/DefineLocaleEventListener.php View File

2
 
2
 
3
 namespace PhpBenchmarksSymfony\RestApiBundle\EventListener;
3
 namespace PhpBenchmarksSymfony\RestApiBundle\EventListener;
4
 
4
 
5
-use Symfony\Component\HttpFoundation\RequestStack;
5
+use Symfony\Component\DependencyInjection\ContainerInterface;
6
+use Symfony\Component\HttpFoundation\Request;
6
 use Symfony\Component\Translation\TranslatorInterface;
7
 use Symfony\Component\Translation\TranslatorInterface;
7
 
8
 
8
 class DefineLocaleEventListener
9
 class DefineLocaleEventListener
9
 {
10
 {
10
     const EVENT_NAME = 'defineLocale';
11
     const EVENT_NAME = 'defineLocale';
11
 
12
 
12
-    /** @var RequestStack */
13
-    protected $requestStack;
13
+    /**
14
+     * request_stack don't exist on <= 2.3, so use container to retrieve request, as mentionned in documentation
15
+     * @var ContainerInterface
16
+     */
17
+    protected $container;
14
 
18
 
15
     /** @var TranslatorInterface */
19
     /** @var TranslatorInterface */
16
     protected $translator;
20
     protected $translator;
17
 
21
 
18
-    public function __construct(RequestStack $requestStack, TranslatorInterface $translator)
22
+    public function __construct(ContainerInterface $container, TranslatorInterface $translator)
19
     {
23
     {
20
-        $this->requestStack = $requestStack;
24
+        $this->container = $container;
21
         $this->translator = $translator;
25
         $this->translator = $translator;
22
     }
26
     }
23
 
27
 
26
         $locales = ['fr_FR', 'en_GB', 'aa_BB'];
30
         $locales = ['fr_FR', 'en_GB', 'aa_BB'];
27
         $locale = $locales[rand(0, 2)];
31
         $locale = $locales[rand(0, 2)];
28
 
32
 
29
-        $this->requestStack->getCurrentRequest()->setLocale($locale);
33
+        $this->container->get('request')->setLocale($locale);
30
         $this->translator->setLocale($locale);
34
         $this->translator->setLocale($locale);
31
     }
35
     }
32
 }
36
 }

+ 1
- 1
Resources/config/services.yml View File

22
 
22
 
23
     benchmark.event_listener.define_locale:
23
     benchmark.event_listener.define_locale:
24
         class: PhpBenchmarksSymfony\RestApiBundle\EventListener\DefineLocaleEventListener
24
         class: PhpBenchmarksSymfony\RestApiBundle\EventListener\DefineLocaleEventListener
25
-        arguments: ['@request_stack', '@translator']
25
+        arguments: ['@service_container', '@translator']
26
         tags:
26
         tags:
27
             - { name: kernel.event_listener, event: defineLocale }
27
             - { name: kernel.event_listener, event: defineLocale }

Loading…
Cancel
Save