Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b352992

Browse files
committed
Revisit PR
1 parent 7dc4c69 commit b352992

9 files changed

+23
-86
lines changed

src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/RequestArgumentResolver.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ class RequestArgumentResolver implements ArgumentResolverInterface
2424
/**
2525
* {@inheritDoc}
2626
*/
27-
public function accepts(Request $request, \ReflectionParameter $parameter)
27+
public function supports(Request $request, \ReflectionParameter $parameter)
2828
{
2929
$class = $parameter->getClass();
30-
30+
3131
return $class && $class->isInstance($request);
3232
}
3333

src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/RequestAttributesArgumentResolver.php

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,16 @@ class RequestAttributesArgumentResolver implements ArgumentResolverInterface
2424
/**
2525
* {@inheritDoc}
2626
*/
27-
public function accepts(Request $request, \ReflectionParameter $parameter)
27+
public function supports(Request $request, \ReflectionParameter $parameter)
2828
{
29-
return array_key_exists($parameter->name, $request->attributes->all());
29+
return $request->attributes->has($parameter->name);
3030
}
3131

3232
/**
3333
* {@inheritDoc}
3434
*/
3535
public function resolve(Request $request, \ReflectionParameter $parameter)
3636
{
37-
$attributes = $request->attributes->all();
38-
39-
return $attributes[$parameter->name];
37+
return $request->attributes->get($parameter->name);
4038
}
4139
}

src/Symfony/Component/HttpKernel/Controller/ArgumentResolverInterface.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,30 +14,30 @@
1414
use Symfony\Component\HttpFoundation\Request;
1515

1616
/**
17-
* An ArgumentResolverInterface implementation resolves the arguments of
17+
* An ArgumentResolverInterface implementation resolves the arguments of
1818
* controllers.
1919
*
2020
* @author Wouter J <[email protected]>
2121
*/
2222
interface ArgumentResolverInterface
2323
{
2424
/**
25-
* Checks if the current parameter can be resolved by this argument
25+
* Checks if the current parameter can be resolved by this argument
2626
* resolver.
2727
*
2828
* @param Request $request
2929
* @param \ReflectionParameter $parameter
3030
*
3131
* @return Boolean
3232
*/
33-
public function accepts(Request $request, \ReflectionParameter $parameter);
33+
public function supports(Request $request, \ReflectionParameter $parameter);
3434

3535
/**
3636
* Resolves the current parameter into an argument.
3737
*
3838
* @param Request $request
3939
* @param \ReflectionParameter $parameter
40-
*
40+
*
4141
* @return mixed The resolved argument
4242
*/
4343
public function resolve(Request $request, \ReflectionParameter $parameter);

src/Symfony/Component/HttpKernel/Controller/ArgumentResolverManager.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class ArgumentResolverManager
3131
*
3232
* @param ArgumentResolverInterface $resolver
3333
*/
34-
public function addResolver(ArgumentResolverInterface $resolver)
34+
public function add(ArgumentResolverInterface $resolver)
3535
{
3636
$this->resolvers[] = $resolver;
3737
}
@@ -48,6 +48,10 @@ public function addResolver(ArgumentResolverInterface $resolver)
4848
*/
4949
public function getArguments(Request $request, $controller)
5050
{
51+
if (!is_callable($controller)) {
52+
throw new \InvalidArgumentException(sprintf('Expected a callable as second parameter, got "%s".', is_object($controller) ? get_class($controller) : gettype($controller)));
53+
}
54+
5155
if (is_array($controller)) {
5256
$controllerReflection = new \ReflectionMethod($controller[0], $controller[1]);
5357
} elseif (is_object($controller) && !$controller instanceof \Closure) {
@@ -62,7 +66,7 @@ public function getArguments(Request $request, $controller)
6266

6367
foreach ($parameters as $parameter) {
6468
foreach ($this->resolvers as $argumentResolver) {
65-
if ($argumentResolver->accepts($request, $parameter)) {
69+
if ($argumentResolver->supports($request, $parameter)) {
6670
$arguments[] = $argumentResolver->resolve($request, $parameter);
6771
continue 2;
6872
}

src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php

Lines changed: 0 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -86,57 +86,6 @@ public function getController(Request $request)
8686
return $callable;
8787
}
8888

89-
/**
90-
* {@inheritdoc}
91-
*
92-
* @api
93-
*
94-
* @deprecated Deprecated since Symfony 2.6, will be removed in Symfony 3.0. Use ArgumentResolvers instead
95-
*/
96-
public function getArguments(Request $request, $controller)
97-
{
98-
if (is_array($controller)) {
99-
$r = new \ReflectionMethod($controller[0], $controller[1]);
100-
} elseif (is_object($controller) && !$controller instanceof \Closure) {
101-
$r = new \ReflectionObject($controller);
102-
$r = $r->getMethod('__invoke');
103-
} else {
104-
$r = new \ReflectionFunction($controller);
105-
}
106-
107-
return $this->doGetArguments($request, $controller, $r->getParameters());
108-
}
109-
110-
/**
111-
* @deprecated Deprecated since Symfony 2.6, will be removed in Symfony 3.0. Use ArgumentResolvers instead
112-
*/
113-
protected function doGetArguments(Request $request, $controller, array $parameters)
114-
{
115-
$attributes = $request->attributes->all();
116-
$arguments = array();
117-
foreach ($parameters as $param) {
118-
if (array_key_exists($param->name, $attributes)) {
119-
$arguments[] = $attributes[$param->name];
120-
} elseif ($param->getClass() && $param->getClass()->isInstance($request)) {
121-
$arguments[] = $request;
122-
} elseif ($param->isDefaultValueAvailable()) {
123-
$arguments[] = $param->getDefaultValue();
124-
} else {
125-
if (is_array($controller)) {
126-
$repr = sprintf('%s::%s()', get_class($controller[0]), $controller[1]);
127-
} elseif (is_object($controller)) {
128-
$repr = get_class($controller);
129-
} else {
130-
$repr = $controller;
131-
}
132-
133-
throw new \RuntimeException(sprintf('Controller "%s" requires that you provide a value for the "$%s" argument (because there is no default value or because there is a non optional argument after this one).', $repr, $param->name));
134-
}
135-
}
136-
137-
return $arguments;
138-
}
139-
14089
/**
14190
* Returns a callable for the given controller.
14291
*

src/Symfony/Component/HttpKernel/Controller/ControllerResolverInterface.php

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,4 @@ interface ControllerResolverInterface
4646
* @api
4747
*/
4848
public function getController(Request $request);
49-
50-
/**
51-
* Returns the arguments to pass to the controller.
52-
*
53-
* @param Request $request A Request instance
54-
* @param callable $controller A PHP callable
55-
*
56-
* @return array An array of arguments to pass to the controller
57-
*
58-
* @throws \RuntimeException When value for argument given is not provided
59-
*
60-
* @api
61-
*/
62-
public function getArguments(Request $request, $controller);
6349
}

src/Symfony/Component/HttpKernel/DependencyInjection/RegisterArgumentResolversPass.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@ class RegisterArgumentResolversPass implements CompilerPassInterface
2525
/**
2626
* @var string
2727
*/
28-
protected $managerService;
28+
private $managerService;
2929

3030
/**
3131
* @var string
3232
*/
33-
protected $resolverTag;
33+
private $resolverTag;
3434

3535
public function __construct($managerService = 'argument_resolver.manager', $resolverTag = 'kernel.argument_resolver')
3636
{
@@ -50,7 +50,7 @@ public function process(ContainerBuilder $container)
5050
$definition = $container->findDefinition($this->managerService);
5151

5252
foreach ($container->findTaggedServiceIds($this->resolverTag) as $id => $resolvers) {
53-
$definition->addMethodCall('addResolver', array(new Reference($id)));
53+
$definition->addMethodCall('add', array(new Reference($id)));
5454
}
5555
}
5656
}

src/Symfony/Component/HttpKernel/HttpKernel.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -304,8 +304,8 @@ protected function getArgumentResolver()
304304
if (null === $this->argumentResolver) {
305305
// to keep BC
306306
$this->argumentResolver = new ArgumentResolverManager();
307-
$this->argumentResolver->addResolver(new ArgumentResolver\RequestArgumentResolver());
308-
$this->argumentResolver->addResolver(new ArgumentResolver\RequestAttributesArgumentResolver());
307+
$this->argumentResolver->add(new ArgumentResolver\RequestArgumentResolver());
308+
$this->argumentResolver->add(new ArgumentResolver\RequestAttributesArgumentResolver());
309309
}
310310

311311
return $this->argumentResolver;

src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolverManagerTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ public function setUp()
2525
$this->manager = new ArgumentResolverManager();
2626
$this->resolver1 = $this->getMock('Symfony\Component\HttpKernel\Controller\ArgumentResolverInterface');
2727
$this->resolver2 = $this->getMock('Symfony\Component\HttpKernel\Controller\ArgumentResolverInterface');
28-
$this->manager->addResolver($this->resolver1);
29-
$this->manager->addResolver($this->resolver2);
28+
$this->manager->add($this->resolver1);
29+
$this->manager->add($this->resolver2);
3030

3131
$this->request = $this->getMock('Symfony\Component\HttpFoundation\Request');
3232
}
3333

3434
public function testGetArgumentsFirstResolverAccepts()
3535
{
36-
$this->resolver1->expects($this->any())->method('accepts')->will($this->returnValue(true));
36+
$this->resolver1->expects($this->any())->method('accepts')->will($this->returnValue(true));
3737
$this->resolver1->expects($this->any())
3838
->method('resolve')
3939
->will($this->returnValue('resolved_value'));

0 commit comments

Comments
 (0)