aboutsummaryrefslogtreecommitdiff
path: root/public/index.php
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2026-03-24 22:39:29 +0100
committerpolo <ordipolo@gmx.fr>2026-03-24 22:40:33 +0100
commit3b369122645b07b290f7fcc7bccb4787745cd5ea (patch)
tree3f9c2d1fbd5fe8b26162202e9b1e6cd5c8a940f6 /public/index.php
parenta70dee9b5021a137ae07041c38921553442b0c11 (diff)
downloadcms-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.php43
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!
11B - 12B -
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
18declare(strict_types=1); 18declare(strict_types=1);
19 19
20use Symfony\Component\HttpFoundation\Request; 20use 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
35URL::setPort(Config::$port); 34URL::setPort(Config::$port);
36URL::setHost($_SERVER['HTTP_HOST'] . Config::$index_path); 35URL::setHost($_SERVER['HTTP_HOST'] . Config::$index_path);
37 36
38// les messages d'erreur de déploiement qu'on aime
39require('../src/installation.php');
40phpDependancies();
41installation(); // droits des dossiers et fichier config.ini
42
43// $entityManager 37// $entityManager
44require '../src/model/doctrine-bootstrap.php'; // isDevMode est sur "true", DSN à adapter 38require '../src/model/doctrine-bootstrap.php'; // isDevMode est sur "true", DSN à adapter
45 39
40// mode de fonctionnement
41AppMode::load($entityManager);
42
43// tests de bon fonctionnement
44if(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) 55require('../src/service/session.php');
50ini_set('session.cookie_samesite', 'Strict'); 56
51ini_set('session.cookie_httponly', 'On'); 57// en mode maintenance laisser la possibilité de se logger, bloquer le reste du site aux visiteurs
52ini_set('session.use_strict_mode', 'On'); 58if(AppMode::is('maintenance') && !IS_ADMIN
53ini_set('session.cookie_secure', 'On'); 59 && !($request->query->has('page') && $request->query->get('page') === 'connection')
54session_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;
57if($_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
65define('CURRENT_PAGE', htmlspecialchars($request->query->get('page') ?? '')); 68define('CURRENT_PAGE', htmlspecialchars($request->query->get('page') ?? ''));
66require '../src/router.php'; \ No newline at end of file 69require '../src/service/router.php'; \ No newline at end of file