Initial boilerplate commit part 1.

This commit is contained in:
2026-03-31 08:23:46 +02:00
parent 9562f8f826
commit 44fb025c81
7 changed files with 906 additions and 0 deletions
+36
View File
@@ -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);