62 lines
2.0 KiB
PHP
62 lines
2.0 KiB
PHP
<?php
|
||
declare(strict_types=1);
|
||
|
||
use Slim\Factory\AppFactory;
|
||
use Slim\Views\Twig;
|
||
use Slim\Views\TwigMiddleware;
|
||
use Illuminate\Database\Capsule\Manager as Capsule;
|
||
|
||
require __DIR__ . '/../vendor/autoload.php';
|
||
|
||
/* -------------------------------------------------
|
||
Instanciation de l’application Slim
|
||
------------------------------------------------- */
|
||
$app = AppFactory::create();
|
||
|
||
/* -------------------------------------------------
|
||
Middleware d’erreur (affiche les exceptions)
|
||
------------------------------------------------- */
|
||
$app->addErrorMiddleware(true, true, true);
|
||
|
||
/* -------------------------------------------------
|
||
Twig (templates)
|
||
------------------------------------------------- */
|
||
$twig = Twig::create(__DIR__ . '/../views', ['cache' => false]);
|
||
$app->add(TwigMiddleware::create($app, $twig));
|
||
|
||
/* -------------------------------------------------
|
||
Vérification / création du fichier SQLite
|
||
------------------------------------------------- */
|
||
$dbFile = __DIR__ . '/../database/blog.sqlite';
|
||
if (!file_exists($dbFile)) {
|
||
// crée un fichier vide et lui donne les permissions d’écriture
|
||
touch($dbFile);
|
||
chmod($dbFile, 0664);
|
||
}
|
||
|
||
/* -------------------------------------------------
|
||
Eloquent (connexion SQLite)
|
||
------------------------------------------------- */
|
||
$capsule = new Capsule;
|
||
$capsule->addConnection([
|
||
'driver' => 'sqlite',
|
||
// le chemin relatif fonctionne ; SQLite créera le fichier si besoin
|
||
'database' => $dbFile,
|
||
'prefix' => '',
|
||
]);
|
||
$capsule->setAsGlobal();
|
||
$capsule->bootEloquent();
|
||
|
||
/* -------------------------------------------------
|
||
Chargement des routes
|
||
------------------------------------------------- */
|
||
$routerFiles = glob(__DIR__ . '/../src/Routes/*.php');
|
||
foreach ($routerFiles as $file) {
|
||
(require $file)($app); // chaque fichier retourne une fonction qui ajoute ses routes
|
||
}
|
||
|
||
/* -------------------------------------------------
|
||
Démarrage de l’application
|
||
------------------------------------------------- */
|
||
$app->run();
|