diff options
| author | polo <ordipolo@gmx.fr> | 2026-03-24 22:39:29 +0100 |
|---|---|---|
| committer | polo <ordipolo@gmx.fr> | 2026-03-24 22:40:33 +0100 |
| commit | 3b369122645b07b290f7fcc7bccb4787745cd5ea (patch) | |
| tree | 3f9c2d1fbd5fe8b26162202e9b1e6cd5c8a940f6 /public/index.php | |
| parent | a70dee9b5021a137ae07041c38921553442b0c11 (diff) | |
| download | cms-3b369122645b07b290f7fcc7bccb4787745cd5ea.tar.gz cms-3b369122645b07b290f7fcc7bccb4787745cd5ea.tar.bz2 cms-3b369122645b07b290f7fcc7bccb4787745cd5ea.zip | |
mode maintenance, optimisation moins de contrôles en mode run, dossier service et déplacement fichiers, sessions et entité User préparées à l'implémentation hypothétique des rôles, entité AppMetadata, meilleure sécurité de fillStartingDatabase
Diffstat (limited to 'public/index.php')
| -rw-r--r-- | public/index.php | 43 |
1 files changed, 23 insertions, 20 deletions
diff --git a/public/index.php b/public/index.php index be2e85b..a12bc47 100644 --- a/public/index.php +++ b/public/index.php | |||
| @@ -8,17 +8,16 @@ A - | |||
| 8 | 2/ routeur structuré: méthodes GET et POST, content-type, admin | 8 | 2/ routeur structuré: méthodes GET et POST, content-type, admin |
| 9 | 3/ routeur amélioré: pré-routage avec méthodes HTTP: GET, HEAD, POST, PUT, PATCH, DELETE, etc | 9 | 3/ routeur amélioré: pré-routage avec méthodes HTTP: GET, HEAD, POST, PUT, PATCH, DELETE, etc |
| 10 | 4/ réécriture avec les classes Request et Response sans toucher les liens | 10 | 4/ réécriture avec les classes Request et Response sans toucher les liens |
| 11 | 5/ http-foundation possède aussi une classe Session. intéressant! | ||
| 11 | B - | 12 | B - |
| 12 | 1/ passer à des chemins modernes "ciblant des ressources" genre /chemin/de/la/page | 13 | 1/ passer à des chemins modernes "ciblant des ressources" genre /chemin/de/la/page |
| 13 | le mode modification de page doit thérioquement être appelé comme ça: /chemin/de/la/page/modif_page | 14 | le mode modification de page doit thérioquement être appelé comme ça: /chemin/de/la/page/modif_page |
| 14 | apparemment, le from=nom_page pour les formulaires ne se fait pas... | 15 | apparemment, le from=nom_page pour les formulaires ne se fait pas... |
| 15 | 2/ utiliser le routeur de symfony: nécéssite que tous les contrôleurs soient des classes avec un namespace | 16 | 2/ utiliser le routeur de symfony: nécéssite que tous les contrôleurs soient des classes avec un namespace */ |
| 16 | 3/ http-foundation possède aussi une classe Session. intéressant! */ | ||
| 17 | 17 | ||
| 18 | declare(strict_types=1); | 18 | declare(strict_types=1); |
| 19 | 19 | ||
| 20 | use Symfony\Component\HttpFoundation\Request; | 20 | use Symfony\Component\HttpFoundation\Request; |
| 21 | //use Symfony\Component\HttpFoundation\Session\Session; | ||
| 22 | 21 | ||
| 23 | 22 | ||
| 24 | /* -- partie 1: prétraitement -- | 23 | /* -- partie 1: prétraitement -- |
| @@ -35,32 +34,36 @@ URL::setProtocol(Config::$protocol); // utile si port autre que 80 ou 443 | |||
| 35 | URL::setPort(Config::$port); | 34 | URL::setPort(Config::$port); |
| 36 | URL::setHost($_SERVER['HTTP_HOST'] . Config::$index_path); | 35 | URL::setHost($_SERVER['HTTP_HOST'] . Config::$index_path); |
| 37 | 36 | ||
| 38 | // les messages d'erreur de déploiement qu'on aime | ||
| 39 | require('../src/installation.php'); | ||
| 40 | phpDependancies(); | ||
| 41 | installation(); // droits des dossiers et fichier config.ini | ||
| 42 | |||
| 43 | // $entityManager | 37 | // $entityManager |
| 44 | require '../src/model/doctrine-bootstrap.php'; // isDevMode est sur "true", DSN à adapter | 38 | require '../src/model/doctrine-bootstrap.php'; // isDevMode est sur "true", DSN à adapter |
| 45 | 39 | ||
| 40 | // mode de fonctionnement | ||
| 41 | AppMode::load($entityManager); | ||
| 42 | |||
| 43 | // tests de bon fonctionnement | ||
| 44 | if(AppMode::is('maintenance')){ | ||
| 45 | Installation::phpDependancies(); | ||
| 46 | Installation::checkFilesAndFoldersRights(); | ||
| 47 | |||
| 48 | // si appelée pour la 1ère fois, remplit la BDD et active le mode "run" | ||
| 49 | Installation::fillStartingDatabase($entityManager); | ||
| 50 | } | ||
| 51 | |||
| 46 | $request = Request::createFromGlobals(); | 52 | $request = Request::createFromGlobals(); |
| 47 | 53 | ||
| 48 | // session | 54 | // session |
| 49 | // (symfony/http-foundation pourrait nous aider avec les sessions) | 55 | require('../src/service/session.php'); |
| 50 | ini_set('session.cookie_samesite', 'Strict'); | 56 | |
| 51 | ini_set('session.cookie_httponly', 'On'); | 57 | // en mode maintenance laisser la possibilité de se logger, bloquer le reste du site aux visiteurs |
| 52 | ini_set('session.use_strict_mode', 'On'); | 58 | if(AppMode::is('maintenance') && !IS_ADMIN |
| 53 | ini_set('session.cookie_secure', 'On'); | 59 | && !($request->query->has('page') && $request->query->get('page') === 'connection') |
| 54 | session_start(); | 60 | && !($request->query->has('action') && $request->query->get('action') === 'connection')){ |
| 55 | 61 | require '../src/view/templates/maintenance.php'; | |
| 56 | $_SESSION['admin'] = $_SESSION['admin'] ?? false; | 62 | die; |
| 57 | if($_SESSION['admin'] === false || empty($_SESSION['user'])){ // OUT !! | ||
| 58 | $_SESSION['user'] = ''; | ||
| 59 | $_SESSION['admin'] = false; | ||
| 60 | } | 63 | } |
| 61 | 64 | ||
| 62 | 65 | ||
| 63 | /* -- partie 2: routage et contrôleurs -- */ | 66 | /* -- partie 2: routage et contrôleurs -- */ |
| 64 | 67 | ||
| 65 | define('CURRENT_PAGE', htmlspecialchars($request->query->get('page') ?? '')); | 68 | define('CURRENT_PAGE', htmlspecialchars($request->query->get('page') ?? '')); |
| 66 | require '../src/router.php'; \ No newline at end of file | 69 | require '../src/service/router.php'; \ No newline at end of file |
