public function __invoke(Request $request, Response $response)
{
if (!($preRoute = $request->getLocalVar("aerys.routed"))) {
return;
}
list($isMethodAllowed, $data) = $preRoute;
if ($isMethodAllowed) {
return $data($request, $response, $request->getLocalVar("aerys.routeArgs"));
} else {
$allowedMethods = implode(",", $data);
$response->setStatus(HTTP_STATUS["METHOD_NOT_ALLOWED"]);
$response->setHeader("Allow", $allowedMethods);
$response->setHeader("Aerys-Generic-Response", "enable");
$response->end();
}
}