File tree 2 files changed +29
-0
lines changed
src/Symfony/Bundle/FrameworkBundle 2 files changed +29
-0
lines changed Original file line number Diff line number Diff line change @@ -46,6 +46,13 @@ protected function createController($controller)
46
46
$ resolvedController [0 ] = $ this ->configureController ($ resolvedController [0 ]);
47
47
}
48
48
49
+ if (is_object ($ resolvedController ) && method_exists ($ resolvedController , '__invoke ' )) {
50
+ $ resolvedController = [
51
+ $ this ->configureController ($ resolvedController ),
52
+ '__invoke '
53
+ ];
54
+ }
55
+
49
56
return $ resolvedController ;
50
57
}
51
58
Original file line number Diff line number Diff line change 24
24
25
25
class ControllerResolverTest extends ContainerControllerResolverTest
26
26
{
27
+ public function testGetControllerWithServiceWithoutMethod ()
28
+ {
29
+ class_exists (AbstractControllerTest::class);
30
+
31
+ $ dummyController = new DummyController ();
32
+ $ container = new Container ();
33
+ $ container ->set ('app.index_controller ' , $ dummyController );
34
+
35
+ $ resolver = $ this ->createControllerResolver (null , $ container );
36
+ $ request = Request::create ('/ ' );
37
+ $ request ->attributes ->set ('_controller ' , 'app.index_controller ' );
38
+
39
+ $ controller = $ resolver ->getController ($ request );
40
+
41
+ $ this ->assertSame ($ container , $ controller [0 ]->getContainer ());
42
+ $ this ->assertSame ('__invoke ' , $ controller [1 ]);
43
+ }
44
+
27
45
public function testGetControllerOnContainerAware ()
28
46
{
29
47
$ resolver = $ this ->createControllerResolver ();
@@ -217,6 +235,10 @@ public function getContainer()
217
235
return $ this ->container ;
218
236
}
219
237
238
+ public function __invoke ()
239
+ {
240
+ }
241
+
220
242
public function fooAction ()
221
243
{
222
244
}
You can’t perform that action at this time.
0 commit comments