15
15
use Symfony \Component \HttpFoundation \Response ;
16
16
use Symfony \Component \HttpFoundation \StreamedResponse ;
17
17
use Symfony \Component \HttpKernel \Controller \ControllerReference ;
18
- use Symfony \Component \HttpKernel \KernelEvents ;
19
- use Symfony \Component \HttpKernel \Event \GetResponseEvent ;
20
- use Symfony \Component \HttpKernel \Event \FilterResponseEvent ;
21
- use Symfony \Component \EventDispatcher \EventSubscriberInterface ;
22
18
23
19
/**
24
20
* Renders a URI that represents a resource fragment.
30
26
*
31
27
* @see FragmentRendererInterface
32
28
*/
33
- class FragmentHandler implements EventSubscriberInterface
29
+ class FragmentHandler
34
30
{
35
31
private $ debug ;
36
32
private $ renderers ;
37
- private $ requests ;
33
+ private $ request ;
38
34
39
35
/**
40
36
* Constructor.
@@ -49,7 +45,6 @@ public function __construct(array $renderers = array(), $debug = false)
49
45
$ this ->addRenderer ($ renderer );
50
46
}
51
47
$ this ->debug = $ debug ;
52
- $ this ->requests = array ();
53
48
}
54
49
55
50
/**
@@ -63,23 +58,13 @@ public function addRenderer(FragmentRendererInterface $renderer)
63
58
}
64
59
65
60
/**
66
- * Stores the Request object .
61
+ * Sets the current Request .
67
62
*
68
- * @param GetResponseEvent $event A GetResponseEvent instance
63
+ * @param Request $request The current Request
69
64
*/
70
- public function onKernelRequest ( GetResponseEvent $ event )
65
+ public function setRequest ( Request $ request = null )
71
66
{
72
- array_unshift ($ this ->requests , $ event ->getRequest ());
73
- }
74
-
75
- /**
76
- * Removes the most recent Request object.
77
- *
78
- * @param FilterResponseEvent $event A FilterResponseEvent instance
79
- */
80
- public function onKernelResponse (FilterResponseEvent $ event )
81
- {
82
- array_shift ($ this ->requests );
67
+ $ this ->request = $ request ;
83
68
}
84
69
85
70
/**
@@ -108,7 +93,7 @@ public function render($uri, $renderer = 'inline', array $options = array())
108
93
throw new \InvalidArgumentException (sprintf ('The "%s" renderer does not exist. ' , $ renderer ));
109
94
}
110
95
111
- return $ this ->deliver ($ this ->renderers [$ renderer ]->render ($ uri , $ this ->requests [ 0 ] , $ options ));
96
+ return $ this ->deliver ($ this ->renderers [$ renderer ]->render ($ uri , $ this ->request , $ options ));
112
97
}
113
98
114
99
/**
@@ -126,7 +111,7 @@ public function render($uri, $renderer = 'inline', array $options = array())
126
111
protected function deliver (Response $ response )
127
112
{
128
113
if (!$ response ->isSuccessful ()) {
129
- throw new \RuntimeException (sprintf ('Error when rendering "%s" (Status code is %s). ' , $ this ->requests [ 0 ] ->getUri (), $ response ->getStatusCode ()));
114
+ throw new \RuntimeException (sprintf ('Error when rendering "%s" (Status code is %s). ' , $ this ->request ->getUri (), $ response ->getStatusCode ()));
130
115
}
131
116
132
117
if (!$ response instanceof StreamedResponse) {
@@ -136,14 +121,6 @@ protected function deliver(Response $response)
136
121
$ response ->sendContent ();
137
122
}
138
123
139
- public static function getSubscribedEvents ()
140
- {
141
- return array (
142
- KernelEvents::REQUEST => 'onKernelRequest ' ,
143
- KernelEvents::RESPONSE => 'onKernelResponse ' ,
144
- );
145
- }
146
-
147
124
// to be removed in 2.3
148
125
public function fixOptions (array $ options )
149
126
{
0 commit comments