Skip to content

Instantly share code, notes, and snippets.

Created December 20, 2012 15:14
Show Gist options
  • Save anonymous/4345850 to your computer and use it in GitHub Desktop.
Save anonymous/4345850 to your computer and use it in GitHub Desktop.
Toying with the idea of making properties of a request injectable via the routing in silex
<?php
namespace Demo\Controller;
use Silex\ControllerResolver as BaseControllerResolver;
class ControllerResolver extends BaseControllerResolver
{
/**
* We extend here so that we can inject POST and GET as arrays, distancing our controllers from HTTP
*/
protected function doGetArguments(Request $request, $controller, array $parameters) {
foreach ($parameters as $param) {
if ($param->isArray() && $param->getName() == 'params') {
$request->attributes->set('params', $request->request->all());
break;
}
if ($param->isArray() && $param->getName() == 'query') {
$request->attributes->set('query', $request->query->all());
break;
}
}
return parent::doGetArguments($request, $controller, $parameters);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment