Files
pta/app/bootstrap.php
2026-08-20 17:00:06 +02:00

33 lines
1.0 KiB
PHP

<?php
declare(strict_types=1);
/**
* Amorçage commun à TOUS les points d'entrée (pages comme API).
*
* Ouvre la session, établit la connexion PDO et vérifie que le schéma en base
* porte bien les tables et vues attendues par cette version du code. Ce contrôle
* est refait à chaque requête : c'est ce qui garantit qu'une migration oubliée
* se manifeste par un message explicite plutôt que par une erreur SQL au milieu
* d'un écran. Ajouter une table ou une colonne obligatoire impose donc de
* compléter les listes de SchemaModel.
*
* @return PDO Connexion partagée par les contrôleurs et les modèles.
*/
use App\Core\Journal;
use App\Core\Session;
use App\Models\SchemaModel;
Session::start();
$pdo = require dirname(__DIR__) . '/db.php';
(new SchemaModel($pdo))->assertCurrent();
// Le journal d'activité (V7.11) reçoit ici sa connexion, une fois pour toute la
// requête : les gardes statiques (Csrf) et les contrôleurs peuvent alors tracer
// une action sans avoir à transporter le PDO.
Journal::useConnection($pdo);
return $pdo;