Initial boilerplate commit part 1.
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
require_once __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
use Laminas\HttpHandlerRunner\Emitter\SapiEmitter;
|
||||
use League\Route\Router;
|
||||
use League\Route\Strategy\ApplicationStrategy;
|
||||
use Nyholm\Psr7\Factory\Psr17Factory;
|
||||
use Nyholm\Psr7Server\ServerRequestCreator;
|
||||
|
||||
use App\Controllers\HomeController;
|
||||
|
||||
$psr17Factory = new Psr17Factory();
|
||||
$creator = new ServerRequestCreator($psr17Factory, $psr17Factory, $psr17Factory, $psr17Factory);
|
||||
$request = $creator->fromGlobals();
|
||||
|
||||
// --- Router setup ---
|
||||
$strategy = new ApplicationStrategy();
|
||||
$router = new Router();
|
||||
|
||||
// --- Routes ---
|
||||
$router->get('/', [HomeController::class, 'index']);
|
||||
|
||||
// --- Dispatch and emit ---
|
||||
try {
|
||||
$response = $router->dispatch($request);
|
||||
} catch (\League\Route\Http\Exception\NotFoundException $e) {
|
||||
$response = (new Psr17Factory())->createResponse(404);
|
||||
$response->getBody()->write('<h1>404 — Page not found</h1>');
|
||||
} catch (\Throwable $e) {
|
||||
$response = (new Psr17Factory())->createResponse(500);
|
||||
$response->getBody()->write('<h1>500 — Server error</h1>');
|
||||
}
|
||||
|
||||
(new SapiEmitter())->emit($response);
|
||||
|
||||
Reference in New Issue
Block a user