12
12
namespace Symfony \Component \HttpKernel \DataCollector ;
13
13
14
14
use Symfony \Component \HttpFoundation \ParameterBag ;
15
- use Symfony \Component \HttpFoundation \HeaderBag ;
16
15
use Symfony \Component \HttpFoundation \Request ;
17
16
use Symfony \Component \HttpFoundation \Response ;
18
- use Symfony \Component \HttpFoundation \ResponseHeaderBag ;
19
17
use Symfony \Component \HttpKernel \Event \FilterResponseEvent ;
20
18
use Symfony \Component \HttpKernel \KernelEvents ;
21
19
use Symfony \Component \HttpKernel \Event \FilterControllerEvent ;
@@ -54,14 +52,11 @@ public function collect(Request $request, Response $response, \Exception $except
54
52
$ attributes = array ();
55
53
$ route = '' ;
56
54
foreach ($ request ->attributes ->all () as $ key => $ value ) {
57
- if ('_route ' === $ key && is_object ($ value )) {
58
- $ attributes [$ key ] = $ this ->cloneVar ($ value ->getPath ());
59
- } else {
60
- $ attributes [$ key ] = $ this ->cloneVar ($ value );
61
- }
62
-
63
55
if ('_route ' === $ key ) {
64
56
$ route = is_object ($ value ) ? $ value ->getPath () : $ value ;
57
+ $ attributes [$ key ] = $ route ;
58
+ } else {
59
+ $ attributes [$ key ] = $ value ;
65
60
}
66
61
}
67
62
@@ -97,8 +92,8 @@ public function collect(Request $request, Response $response, \Exception $except
97
92
'content_type ' => $ response ->headers ->get ('Content-Type ' , 'text/html ' ),
98
93
'status_text ' => isset (Response::$ statusTexts [$ statusCode ]) ? Response::$ statusTexts [$ statusCode ] : '' ,
99
94
'status_code ' => $ statusCode ,
100
- 'request_query ' => array_map ( array ( $ this , ' cloneVar ' ), $ request ->query ->all () ),
101
- 'request_request ' => array_map ( array ( $ this , ' cloneVar ' ), $ request ->request ->all () ),
95
+ 'request_query ' => $ request ->query ->all (),
96
+ 'request_request ' => $ request ->request ->all (),
102
97
'request_headers ' => $ request ->headers ->all (),
103
98
'request_server ' => $ request ->server ->all (),
104
99
'request_cookies ' => $ request ->cookies ->all (),
@@ -125,6 +120,18 @@ public function collect(Request $request, Response $response, \Exception $except
125
120
$ this ->data ['request_request ' ]['_password ' ] = '****** ' ;
126
121
}
127
122
123
+ foreach ($ this ->data as $ key => $ value ) {
124
+ if (!is_array ($ value )) {
125
+ continue ;
126
+ }
127
+ if ('request_headers ' === $ key || 'response_headers ' === $ key ) {
128
+ $ value = array_map (function ($ v ) { return isset ($ v [1 ]) ? $ v : $ v [0 ]; }, $ value );
129
+ }
130
+ if ('request_server ' !== $ key && 'request_attributes ' !== $ key && 'request_cookies ' !== $ key ) {
131
+ $ this ->data [$ key ] = array_map (array ($ this , 'cloneVar ' ), $ value );
132
+ }
133
+ }
134
+
128
135
if (isset ($ this ->controllers [$ request ])) {
129
136
$ this ->data ['controller ' ] = $ this ->parseController ($ this ->controllers [$ request ]);
130
137
unset($ this ->controllers [$ request ]);
@@ -170,27 +177,27 @@ public function getRequestQuery()
170
177
171
178
public function getRequestHeaders ()
172
179
{
173
- return new HeaderBag ($ this ->data ['request_headers ' ]);
180
+ return new ParameterBag ($ this ->data ['request_headers ' ]);
174
181
}
175
182
176
- public function getRequestServer ()
183
+ public function getRequestServer ($ raw = false )
177
184
{
178
- return new ParameterBag ($ this ->data ['request_server ' ]);
185
+ return new ParameterBag ($ raw ? $ this ->data ['request_server ' ] : array_map ( array ( $ this , ' cloneVar ' ), $ this -> data [ ' request_server ' ]) );
179
186
}
180
187
181
- public function getRequestCookies ()
188
+ public function getRequestCookies ($ raw = false )
182
189
{
183
- return new ParameterBag ($ this ->data ['request_cookies ' ]);
190
+ return new ParameterBag ($ raw ? $ this ->data ['request_cookies ' ] : array_map ( array ( $ this , ' cloneVar ' ), $ this -> data [ ' request_cookies ' ]) );
184
191
}
185
192
186
- public function getRequestAttributes ()
193
+ public function getRequestAttributes ($ raw = false )
187
194
{
188
- return new ParameterBag ($ this ->data ['request_attributes ' ]);
195
+ return new ParameterBag ($ raw ? $ this ->data ['request_attributes ' ] : array_map ( array ( $ this , ' cloneVar ' ), $ this -> data [ ' request_attributes ' ]) );
189
196
}
190
197
191
198
public function getResponseHeaders ()
192
199
{
193
- return new ResponseHeaderBag ($ this ->data ['response_headers ' ]);
200
+ return new ParameterBag ($ this ->data ['response_headers ' ]);
194
201
}
195
202
196
203
public function getSessionMetadata ()
@@ -264,7 +271,11 @@ public function getIdentifier()
264
271
*/
265
272
public function getRouteParams ()
266
273
{
267
- return isset ($ this ->data ['request_attributes ' ]['_route_params ' ]) ? $ this ->data ['request_attributes ' ]['_route_params ' ] : $ this ->cloneVar (array ());
274
+ if (!isset ($ this ->data ['request_attributes ' ]['_route_params ' ])) {
275
+ return array ();
276
+ }
277
+
278
+ return array_map (array ($ this , 'cloneVar ' ), $ this ->data ['request_attributes ' ]['_route_params ' ]);
268
279
}
269
280
270
281
/**
0 commit comments