diff --git a/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php b/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php index 2fbbe06892..8304dd4a30 100644 --- a/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php +++ b/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php @@ -117,10 +117,9 @@ class ControllerResolver implements ControllerResolverInterface { $attributes = $request->attributes->all(); $arguments = array(); - $variadicAvailable = method_exists('\ReflectionMethod', 'isVariadic'); foreach ($parameters as $param) { if (array_key_exists($param->name, $attributes)) { - if ($variadicAvailable && $param->isVariadic() && is_array($attributes[$param->name])) { + if (PHP_VERSION_ID >= 50600 && $param->isVariadic() && is_array($attributes[$param->name])) { $arguments = array_merge($arguments, array_values($attributes[$param->name])); } else { $arguments[] = $attributes[$param->name]; diff --git a/src/Symfony/Component/HttpKernel/Tests/Controller/ControllerResolverTest.php b/src/Symfony/Component/HttpKernel/Tests/Controller/ControllerResolverTest.php index f5502c6f96..5f0419cebe 100644 --- a/src/Symfony/Component/HttpKernel/Tests/Controller/ControllerResolverTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/Controller/ControllerResolverTest.php @@ -205,12 +205,10 @@ class ControllerResolverTest extends \PHPUnit_Framework_TestCase $resolver = new ControllerResolver(); $request = Request::create('/'); - $param1 = new \stdClass(); - $param2 = new \stdClass(); $request->attributes->set('foo', 'foo'); - $request->attributes->set('bar', array($param1, $param2)); + $request->attributes->set('bar', array('foo', 'bar')); $controller = array(new VariadicController(), 'action'); - $this->assertEquals(array('foo', $param1, $param2), $resolver->getArguments($request, $controller)); + $this->assertEquals(array('foo', 'foo', 'bar'), $resolver->getArguments($request, $controller)); } public function testCreateControllerCanReturnAnyCallable() diff --git a/src/Symfony/Component/HttpKernel/Tests/Fixtures/Controller/VariadicController.php b/src/Symfony/Component/HttpKernel/Tests/Fixtures/Controller/VariadicController.php index ebca5c4c1d..a540f9d1e1 100644 --- a/src/Symfony/Component/HttpKernel/Tests/Fixtures/Controller/VariadicController.php +++ b/src/Symfony/Component/HttpKernel/Tests/Fixtures/Controller/VariadicController.php @@ -4,7 +4,7 @@ namespace Symfony\Component\HttpKernel\Tests\Fixtures\Controller; class VariadicController { - public function action($foo,...$bar) + public function action($foo, ...$bar) { } }