public function __call($name, $arguments) { $helper = $this->helpers[$name]; if ($helper != null) { $request = Request::createFromGlobals(); array_push($arguments, $request); return call_user_func_array($helper, $arguments); } }
public function run(Request $request = null, Response $response = null) { $request = $request == null ? Request::createFromGlobals() : $request; $response = $response == null ? new Response() : $response; $error = false; try { $this->router->handle($request, $response); } catch (NotFoundException $e) { $response->status(404); $error = true; } catch (MethodNotAllowedException $e) { $response->status(405); $response->header('Allow: ' . $e->allowedMethods()); $error = true; } if ($error && $this->error_callback !== null) { $contents = call_user_func($this->error_callback); $response->contents($contents); } $response->send(); }
public function testACompleteResponseShouldStopFurtherRouteExecution() { $router = new Router(); $router->before(function (Response $response) { $response->send(); })->after(function () { return 'after_router'; }); $router->get('/test', function () { return 'test'; }); $response = new ResponseMock(); $router->handle(Request::create(false, 'localhost', '/test'), $response); $this->assertEquals('', $response->contents()); }