/**
* @param callable|string $controller
* @return \Closure
*/
public function createController($controller)
{
return function (Request $request) use($controller) {
$fakeRequest = Request::create($request->getUri());
$fakeRequest->attributes->set('_controller', $controller);
$callableController = $this->controllerResolver->getController($fakeRequest);
$arguments = $this->controllerResolver->getArguments($request, $callableController);
$psr7Response = call_user_func_array($callableController, $arguments);
return $this->httpFoundationFactory->createResponse($psr7Response);
};
}