4
4
namespace Artgris \MaintenanceBundle \EventListener ;
5
5
6
6
7
- use Symfony \Bridge \Twig \TwigEngine ;
8
7
use Symfony \Component \HttpFoundation \Response ;
9
8
use Symfony \Component \HttpKernel \Event \GetResponseEvent ;
10
9
use Symfony \Component \HttpKernel \KernelInterface ;
10
+ use Twig_Environment ;
11
+
11
12
/**
12
13
* Maintenance Listener
13
14
*
14
15
* @author Arthur Gribet <[email protected] >
15
16
*/
16
17
class MaintenanceListener
17
18
{
18
- /**
19
- * @var bool
20
- */
21
- private $ enable ;
22
- /**
23
- * @var array
24
- */
25
- private $ ips ;
26
- /**
27
- * @var KernelInterface
28
- */
29
- private $ kernel ;
30
- /**
31
- * @var TwigEngine
32
- */
33
- private $ templating ;
34
- /**
35
- * MaintenanceListener constructor.
36
- *
37
- * @param array $maintenance
38
- * @param KernelInterface $kernel
39
- * @param TwigEngine $templating
40
- */
41
- public function __construct (array $ maintenance , KernelInterface $ kernel , TwigEngine $ templating )
42
- {
43
- $ this ->enable = $ maintenance ['enable ' ] ? $ maintenance ['enable ' ] : false ;
44
- $ this ->ips = $ maintenance ['ips ' ] ? $ maintenance ['ips ' ] : [];
45
- $ this ->kernel = $ kernel ;
46
- $ this ->templating = $ templating ;
47
- }
48
- public function onKernelRequest (GetResponseEvent $ event )
49
- {
50
- /**
51
- * Conditions : Maintenance enable, not in dev/test mode, not in enable Ips
52
- */
53
- if ($ this ->enable && !in_array ($ this ->kernel ->getEnvironment (), ['dev ' ]) && !in_array (@$ _SERVER ['REMOTE_ADDR ' ], $ this ->ips )) {
54
- $ content = $ this ->templating ->render ('@ArtgrisMaintenance/maintenance.html.twig ' );
55
- $ event ->setResponse (new Response ($ content , Response::HTTP_SERVICE_UNAVAILABLE ));
56
- $ event ->stopPropagation ();
57
- }
58
- }
19
+ /**
20
+ * @var bool
21
+ */
22
+ private $ enable ;
23
+ /**
24
+ * @var array
25
+ */
26
+ private $ ips ;
27
+ /**
28
+ * @var KernelInterface
29
+ */
30
+ private $ kernel ;
31
+ /**
32
+ * @var Twig_Environment
33
+ */
34
+ private $ twig_Environment ;
35
+
36
+ /**
37
+ * MaintenanceListener constructor.
38
+ *
39
+ * @param array $maintenance
40
+ * @param KernelInterface $kernel
41
+ * @param Twig_Environment $twig_Environment
42
+ */
43
+ public function __construct (array $ maintenance , KernelInterface $ kernel , Twig_Environment $ twig_Environment )
44
+ {
45
+ $ this ->enable = $ maintenance ['enable ' ] ? $ maintenance ['enable ' ] : false ;
46
+ $ this ->ips = $ maintenance ['ips ' ] ? $ maintenance ['ips ' ] : [];
47
+ $ this ->kernel = $ kernel ;
48
+ $ this ->twig_Environment = $ twig_Environment ;
49
+ }
50
+
51
+ public function onKernelRequest (GetResponseEvent $ event )
52
+ {
53
+ /**
54
+ * Conditions : Maintenance enable, not in dev/test mode, not in enable Ips
55
+ */
56
+ if ($ this ->enable && !in_array ($ this ->kernel ->getEnvironment (), ['dev ' ]) && !in_array (@$ _SERVER ['REMOTE_ADDR ' ], $ this ->ips )) {
57
+ $ content = $ this ->twig_Environment ->render ('@ArtgrisMaintenance/maintenance.html.twig ' );
58
+ $ event ->setResponse (new Response ($ content , Response::HTTP_SERVICE_UNAVAILABLE ));
59
+ $ event ->stopPropagation ();
60
+ }
61
+ }
59
62
}
0 commit comments