File tree 2 files changed +25
-12
lines changed
2 files changed +25
-12
lines changed Original file line number Diff line number Diff line change @@ -142,19 +142,17 @@ public function addResponseFilter($filter)
142
142
*/
143
143
protected function applyRequestFilter (Request $ request )
144
144
{
145
- $ callback = function ( $ filter ) use ( $ request )
145
+ foreach ( $ this -> requestFilters as $ filter )
146
146
{
147
147
if ($ filter instanceof RequestFilterInterface)
148
148
{
149
- return $ filter ->filter ($ request );
149
+ $ request = $ filter ->filter ($ request ) ?: $ request ;
150
150
}
151
151
else if ($ filter instanceof Closure)
152
152
{
153
- return $ filter ($ request );
153
+ $ request = $ filter ($ request ) ?: $ request ;
154
154
}
155
- };
156
-
157
- array_map ($ callback , $ this ->requestFilters );
155
+ }
158
156
159
157
return $ request ;
160
158
}
@@ -167,19 +165,17 @@ protected function applyRequestFilter(Request $request)
167
165
*/
168
166
protected function applyResponseFilter (Response $ response )
169
167
{
170
- $ callback = function ( $ filter ) use ( $ response )
168
+ foreach ( $ this -> responseFilters as $ filter )
171
169
{
172
170
if ($ filter instanceof ResponseFilterInterface)
173
171
{
174
- return $ filter ->filter ($ response );
172
+ $ response = $ filter ->filter ($ response ) ?: $ response ;
175
173
}
176
174
else if ($ filter instanceof Closure)
177
175
{
178
- return $ filter ($ response );
176
+ $ response = $ filter ($ response ) ?: $ response ;
179
177
}
180
- };
181
-
182
- array_map ($ callback , $ this ->responseFilters );
178
+ }
183
179
184
180
return $ response ;
185
181
}
Original file line number Diff line number Diff line change @@ -159,4 +159,21 @@ public function to_applies_response_filter_closure()
159
159
$ this ->assertTrue ($ executed );
160
160
}
161
161
162
+ /**
163
+ * @test
164
+ */
165
+ public function to_request_filter_returns_new_request ()
166
+ {
167
+ $ replace = new Request ;
168
+
169
+ $ this ->proxy ->addRequestFilter (function (Request $ request ) use ($ replace )
170
+ {
171
+ return $ replace ;
172
+ });
173
+
174
+ $ this ->proxy ->forward (Request::createFromGlobals ())->to ('/ ' );
175
+
176
+ $ this ->assertEquals ($ this ->proxy ->getRequest (), $ replace );
177
+ }
178
+
162
179
}
You can’t perform that action at this time.
0 commit comments