Files
EKDOS/backend/public/index.php
T
Kyle Müller 7d82e807fc
EK-DOS-WEB bauen und ausrollen / frontend (push) Failing after 22s
EK-DOS-WEB bauen und ausrollen / backend (push) Failing after 27s
EK-DOS-WEB bauen und ausrollen / deploy (push) Skipped
Initial
2026-09-06 13:25:44 +02:00

44 lines
1.1 KiB
PHP

<?php
declare(strict_types=1);
/**
* Einziger Einstiegspunkt des Backends.
*
* nginx reicht ausschliesslich /api/ hierher weiter; alles andere ist die
* statisch gebaute Oberflaeche und wird direkt von nginx ausgeliefert.
*/
use Ekdos\Bootstrap\Container;
use Ekdos\Bootstrap\Routes;
use Ekdos\Http\Middleware\ErrorHandler;
use Ekdos\Http\Middleware\SessionMiddleware;
use Ekdos\Support\Config;
use Slim\Factory\AppFactory;
require __DIR__ . '/../vendor/autoload.php';
$projectRoot = dirname(__DIR__);
$container = Container::build($projectRoot);
/** @var Config $config */
$config = $container->get(Config::class);
// Ausnahmen gehen in den Fehlerkanal von php-fpm, niemals in die Antwort.
ini_set('display_errors', '0');
ini_set('log_errors', '1');
AppFactory::setContainer($container);
$app = AppFactory::create();
Routes::register($app);
// Reihenfolge: zuletzt hinzugefuegt laeuft zuerst.
// ErrorHandler -> Session -> Routing -> Body-Parsing -> Route.
$app->addBodyParsingMiddleware();
$app->addRoutingMiddleware();
$app->add($container->get(SessionMiddleware::class));
$app->add(new ErrorHandler($config->bool('APP_DEBUG', false)));
$app->run();