File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -142,19 +142,17 @@ public function addResponseFilter($filter)
142142 */
143143 protected function applyRequestFilter (Request $ request )
144144 {
145- $ callback = function ( $ filter ) use ( $ request )
145+ foreach ( $ this -> requestFilters as $ filter )
146146 {
147147 if ($ filter instanceof RequestFilterInterface)
148148 {
149- return $ filter ->filter ($ request );
149+ $ request = $ filter ->filter ($ request ) ?: $ request ;
150150 }
151151 else if ($ filter instanceof Closure)
152152 {
153- return $ filter ($ request );
153+ $ request = $ filter ($ request ) ?: $ request ;
154154 }
155- };
156-
157- array_map ($ callback , $ this ->requestFilters );
155+ }
158156
159157 return $ request ;
160158 }
@@ -167,19 +165,17 @@ protected function applyRequestFilter(Request $request)
167165 */
168166 protected function applyResponseFilter (Response $ response )
169167 {
170- $ callback = function ( $ filter ) use ( $ response )
168+ foreach ( $ this -> responseFilters as $ filter )
171169 {
172170 if ($ filter instanceof ResponseFilterInterface)
173171 {
174- return $ filter ->filter ($ response );
172+ $ response = $ filter ->filter ($ response ) ?: $ response ;
175173 }
176174 else if ($ filter instanceof Closure)
177175 {
178- return $ filter ($ response );
176+ $ response = $ filter ($ response ) ?: $ response ;
179177 }
180- };
181-
182- array_map ($ callback , $ this ->responseFilters );
178+ }
183179
184180 return $ response ;
185181 }
Original file line number Diff line number Diff line change @@ -159,4 +159,21 @@ public function to_applies_response_filter_closure()
159159 $ this ->assertTrue ($ executed );
160160 }
161161
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+
162179}
You can’t perform that action at this time.
0 commit comments