@@ -27,37 +27,22 @@ class LocaleListener implements EventSubscriberInterface
27
27
private $ router ;
28
28
private $ defaultLocale ;
29
29
30
- public function __construct ($ defaultLocale = 'en ' , RouterInterface $ router
31
- = null )
30
+ public function __construct ($ defaultLocale = 'en ' , RouterInterface $ router = null )
32
31
{
33
32
$ this ->defaultLocale = $ defaultLocale ;
34
33
$ this ->router = $ router ;
35
34
}
36
35
37
- public function onEarlyKernelRequest (GetResponseEvent $ event )
36
+ public function onKernelRequest (GetResponseEvent $ event )
38
37
{
39
38
$ request = $ event ->getRequest ();
39
+
40
40
if ($ request ->hasPreviousSession ()) {
41
- $ request ->setDefaultLocale ($ request ->getSession ()->get ('_locale ' ,
42
- $ this ->defaultLocale ));
41
+ $ request ->setDefaultLocale ($ request ->getSession ()->get ('_locale ' , $ this ->defaultLocale ));
43
42
} else {
44
43
$ request ->setDefaultLocale ($ this ->defaultLocale );
45
44
}
46
45
47
- if (null !== $ this ->router && ($ context = $ this ->router ->getContext ())
48
- && !$ context ->hasParameter ('_locale ' )) {
49
- $ this ->router ->getContext ()->setParameter ('_locale ' ,
50
- $ request ->getLocale ());
51
- }
52
- }
53
-
54
- public function onKernelRequest (GetResponseEvent $ event )
55
- {
56
- if (HttpKernelInterface::MASTER_REQUEST !== $ event ->getRequestType ()) {
57
- return ;
58
- }
59
-
60
- $ request = $ event ->getRequest ();
61
46
if ($ locale = $ request ->attributes ->get ('_locale ' )) {
62
47
$ request ->setLocale ($ locale );
63
48
@@ -67,21 +52,15 @@ public function onKernelRequest(GetResponseEvent $event)
67
52
}
68
53
69
54
if (null !== $ this ->router ) {
70
- $ this ->router ->getContext ()->setParameter ('_locale ' ,
71
- $ request ->getLocale ());
55
+ $ this ->router ->getContext ()->setParameter ('_locale ' , $ request ->getLocale ());
72
56
}
73
57
}
74
58
75
59
static public function getSubscribedEvents ()
76
60
{
77
61
return array (
78
- KernelEvents::REQUEST => array (
79
- // must be registered after the session listener
80
- array ('onEarlyKernelRequest ' , 255 ),
81
-
82
- // must be registered after the Router to have access to the _locale
83
- array ('onKernelRequest ' , 16 ),
84
- ),
62
+ // must be registered after the Router to have access to the _locale
63
+ KernelEvents::REQUEST => array (array ('onKernelRequest ' , 16 )),
85
64
);
86
65
}
87
66
}
0 commit comments