'sqlite', 'database_file' => $dbFile, 'error' => PDO::ERRMODE_EXCEPTION, 'charset' => 'utf8', ]; // Certaines variantes/versions de Medoo s'attendent à 'database_name'. // Dupliquer la valeur pour éviter le warning. if (!isset($medooOptions['database_name'])) { $medooOptions['database_name'] = $medooOptions['database_file']; } $database = new Medoo($medooOptions); // Créer la table si nécessaire (schéma minimal) $database->query( <<<'SQL' CREATE TABLE IF NOT EXISTS post ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, content TEXT NOT NULL ); SQL ); // ------------------------- // Services // ------------------------- $services = []; $services['twig'] = new Twig(new FilesystemLoader(__DIR__ . '/../views'), ['cache' => false]); $services['db'] = $database; $services['post_repository'] = new App\Repositories\PostRepositoryMedoo($database); // ------------------------- // Slim app // ------------------------- $app = AppFactory::create(); $app->addErrorMiddleware(true, true, true); // Body parsing middleware nécessaire pour que getParsedBody() fonctionne $app->addBodyParsingMiddleware(); $app->add(TwigMiddleware::create($app, $services['twig'])); // Charger routes et injecter services (require __DIR__ . '/../src/Routes/web.php')($app, $services); $app->run();