addRoute('GET', '/', 'Main::index'); $router->addRoute('GET', '/parse', 'Parse::parse'); $router->addRoute('POST', '/parse', 'Parse::parse'); $router->addRoute('POST', '/token', 'Token::token'); $router->addRoute('GET', '/feeds', 'Feeds::find'); $router->addRoute('POST', '/feeds', 'Feeds::find'); $router->addRoute('GET', '/rels', 'Rels::fetch'); $router->addRoute('POST', '/rels', 'Rels::fetch'); $router->addRoute('GET', '/cert', 'Certbot::index'); $router->addRoute('GET', '/cert/auth', 'Certbot::start_auth'); $router->addRoute('GET', '/cert/logout', 'Certbot::logout'); $router->addRoute('GET', '/cert/redirect', 'Certbot::redirect'); $router->addRoute('POST', '/cert/save-challenge', 'Certbot::save_challenge'); $router->addRoute('GET', '/.well-known/acme-challenge/{token}', 'Certbot::challenge'); $dispatcher = $router->getDispatcher(); $request = Request::createFromGlobals(); try { $response = $dispatcher->dispatch($request->getMethod(), $request->getPathInfo()); $response->send(); } catch(League\Route\Http\Exception\NotFoundException $e) { $response = new Response; $response->setStatusCode(404); $response->setContent("Not Found\n"); $response->send(); } catch(League\Route\Http\Exception\MethodNotAllowedException $e) { $response = new Response; $response->setStatusCode(405); $response->setContent("Method not allowed\n"); $response->send(); } function shutdown() { $error = error_get_last(); if($error['type'] === E_ERROR) { header('HTTP/1.1 500 Server Error'); header('X-PHP-Error-Type: '.$error['type']); header('X-PHP-Error-Message: '.$error['message']); header('Content-Type: application/json'); echo json_encode([ 'error' => 'internal_error', 'error_code' => 500, 'error_description' => $error['message'], 'debug' => 'Please file an issue with any information you have about what caused this error: https://github.com/aaronpk/XRay/issues' ]); die(); } }