misuzu/public/index.php

49 lines
1.5 KiB
PHP
Raw Normal View History

<?php
2019-09-29 00:38:39 +02:00
namespace Misuzu;
2019-12-13 21:37:17 +01:00
use Misuzu\Http\HttpServerRequestMessage;
use Misuzu\Http\Handlers\Handler;
use Misuzu\Http\Routing\Router;
use Misuzu\Http\Routing\Route;
require_once '../misuzu.php';
2019-12-13 21:37:17 +01:00
$request = HttpServerRequestMessage::fromGlobals();
2018-07-06 03:28:06 +02:00
2019-12-13 21:37:17 +01:00
$router = new Router;
$router->setInstance();
$router->addRoutes(
// Home
Route::get('/', Handler::call('index@HomeHandler')),
2019-12-04 01:08:42 +01:00
2019-12-13 21:37:17 +01:00
// Info
Route::get('/info', Handler::call('index@InfoHandler')),
Route::get('/info/([A-Za-z0-9_/]+)', true, Handler::call('page@InfoHandler')),
2019-12-13 21:37:17 +01:00
// Redirects
Route::get('/index.php', Handler::redirect(url('index'), true)),
Route::get('/info.php', Handler::redirect(url('info'), true)),
Route::get('/info.php/([A-Za-z0-9_/]+)', true, Handler::call('redir@InfoHandler')),
Route::get('/auth.php', Handler::call('legacy@AuthHandler'))
);
2019-12-13 21:37:17 +01:00
$response = $router->handle($request);
$response->setHeader('X-Powered-By', 'Misuzu');
2018-04-30 23:39:43 +02:00
2019-12-13 21:37:17 +01:00
$responseStatus = $response->getStatusCode();
2019-01-18 15:11:15 +01:00
2019-12-13 21:37:17 +01:00
header('HTTP/' . $response->getProtocolVersion() . ' ' . $responseStatus . ' ' . $response->getReasonPhrase());
2018-12-31 02:37:47 +01:00
2019-12-13 21:37:17 +01:00
foreach($response->getHeaders() as $headerName => $headerSet)
foreach($headerSet as $headerLine)
header("{$headerName}: {$headerLine}");
2019-12-13 21:37:17 +01:00
$responseBody = $response->getBody();
2019-03-02 19:42:50 +01:00
2019-12-13 21:37:17 +01:00
if($responseStatus >= 400 && $responseStatus <= 599 && ($responseBody === null || $responseBody->getSize() < 1)) {
echo render_error($responseStatus);
} else {
echo (string)$responseBody;
}