addDefinitions([ // ----------------------------------------------------------------- // Twig : création de l’instance Slim\Views\Twig // ----------------------------------------------------------------- Twig::class => function () { $loader = new FilesystemLoader(__DIR__ . '/../views'); $settings = ['cache' => false]; // désactiver le cache en dev return new Twig($loader, $settings); }, // ----------------------------------------------------------------- // Ajoute d’autres services ici si besoin (logger, DB, etc.) // ----------------------------------------------------------------- ]); $container = $containerBuilder->build(); /* ------------------------------------------------- Instanciation de l’application Slim avec le container ------------------------------------------------- */ AppFactory::setContainer($container); $app = AppFactory::create(); /* ------------------------------------------------- Middleware d’erreur ------------------------------------------------- */ $app->addErrorMiddleware(true, true, true); /* ------------------------------------------------- Twig middleware – on récupère explicitement le service Twig ------------------------------------------------- */ $twig = $container->get(Twig::class); // <-- récupération directe $app->add(TwigMiddleware::create($app, $twig)); // <-- utilisation de create(), pas createFromContainer() /* ------------------------------------------------- Vérification / création du fichier SQLite ------------------------------------------------- */ $dbFile = __DIR__ . '/../database/blog.sqlite'; if (!file_exists($dbFile)) { touch($dbFile); chmod($dbFile, 0664); } /* ------------------------------------------------- RedBeanPHP (connexion SQLite) ------------------------------------------------- */ require __DIR__ . '/../src/Config/redbean.php'; initRedBean($dbFile); /* ------------------------------------------------- Chargement des routes ------------------------------------------------- */ foreach (glob(__DIR__ . '/../src/Routes/*.routes.php') as $file) { (require $file)($app); } /* ------------------------------------------------- Démarrage de l’application ------------------------------------------------- */ $app->run();