foundation/public/index.php
2025-06-13 18:29:55 +02:00

35 lines
No EOL
1.1 KiB
PHP

<?php
declare(strict_types=1);
use Foundation\Core\Application\Application;
use Foundation\Core\Application\DependencyInjection\ContainerFactory;
use Foundation\Core\Application\Bootstrapper\ConfigInitializer;
use Foundation\Core\Application\Bootstrapper\DatabaseInitializer;
use Foundation\Core\Application\Bootstrapper\SessionInitializer;
use Foundation\Core\Application\Bootstrapper\SlimAppRegistrar;
use Foundation\Core\Application\Bootstrapper\ModuleLoader;
require_once dirname(__DIR__) . '/vendor/autoload.php';
try {
$container = ContainerFactory::create();
$app = new Application($container);
$app->addBootstrapper(new ConfigInitializer());
$app->addBootstrapper(new DatabaseInitializer());
$app->addBootstrapper(new SessionInitializer());
$app->addBootstrapper(new SlimAppRegistrar());
$app->addBootstrapper(new ModuleLoader());
$app->run();
} catch (\Throwable $e) {
http_response_code(500);
echo json_encode([
'error' => 'Application failed to start',
'message' => $e->getMessage(),
'file' => $e->getFile(),
'line' => $e->getLine(),
], JSON_PRETTY_PRINT);
}