Skip to main content

Framework

🧩

3. RésuméStructure Fonctionnel & Structureltechnique du Frameworkframework

3.1 Technologies utilisées

Le framework est développé en PHP 8.2+ en respectant les standards PSR-4 pour l'autoloading. Il utilise :


  • Sessions PHP natives et cookies cross-domain

  • 🔧Un FondationsORM maison sans dépendance externe

  • HTML5, CSS3, et JS vanilla (ou bibliothèques ciblées en complément)

  • Nginx en reverse proxy, serveurs Apache pour les VM applicatives

  • Authentification LDAP via Active Directory en complément de l'authentification interne

  • Base de données MySQL/MariaDB

3.2 Organisation des fichiers et dossiers

La structure du Framework

projet

 • Fournit l’ORM maison,est la gestionsuivante des:

connexions,
/framework/
  et├─ l’interfaceapp/
  globale│   ├─ Config/        # Fichiers globaux init/config/database
  │   ├─ Core/          # ORM, Controller, View...
  │   ├─ Modules/       # Modules communs : User, Admin, Common...
  │   ├─ Helpers/       # Fonctions utilitaires partagées
  │   └─ public/        # Front controller principal du framework
/applications/
  └─ <nom_app>/
       ├─ Config/         # config/app_config.php
       ├─ Controllers/    # Contrôleurs métiers
       ├─ Models/         # Modèles liés au framework ORM
       ├─ Views/          # Pages affichables (header/menu).

php) ├─ Assets/ # CSS/JS/images propres au module └─ public/ # index.php du module (front controller local)

3.3 Fonctionnement du front controller principal

Le • Tous les contenus sont organisés en modules dans /applications/.

• Un front controller principal dynamiqueest détecteresponsable de :

  • Initialiser l’environnement du framework (sessions, configuration, autoload)

  • Identifier le module appelé selon l’URL ou la session active

  • Contrôler les modulesdroits etd’accès gère leur intégration.


    👤 Utilisateurs & Authentification

    • Authentification centralisée (interne + AD si besoin).

    • Gestion des sessions dans init.php.

    • Droits définis parau module et parà la fonctionnalité (viademandée

    tables
  • user
  • <->

    Charger dynamiquement les assets du module (JS/CSS)

  • Afficher le header.php global contenant le menu et userles <->informations feature).de session


  • Injecter

    dynamiquement

    🧱le Modulescontenu etprincipal Structureen Dynamique

    provenance


    📦 Chaquedu module contient :actif

  • Son
propre

3.4 dashboard local, avec tuiles dynamiques selon les droits.

 • Son propre menu vertical surgissantSécurité et épinglable à gauche.

 • Son propre front controller interne.

• Ses fonctionnalités déclarées dans une table (core_features), liées à des vues.


📚 Tables de gestion des modulessessions

:
  • Authentification unique via le sous-domaine auth.tarbouriech.tech

  • Session core_applicationsutilisateur initialisée infovia surinit.php lesdu modulesframework, (nomavec court,cookie menu,à ordre…)portée domaine .tarbouriech.tech

  • Vérification core_user_permissionssystématique des rôlesdroits utilisateursd’accès paravant module.l’exécution de toute action

  • core_features → pages/fonctionnalités accessibles dans chaque module.

  •  


     

    🧭 Interface Globale (Framework UI)


    🌐 Header.php (immuable) :

    • À gauche :

    • Icône menu module (vertical, surgissant, épinglable).

    • NomSupport de l’applicationauthentification active.LDAP avec fallback vers base locale

  • Anti-CSRF Àprévu droitepour :les formulaires sensibles

  • Intégration Icône profil / gestionfuture de compte.

    journaux

    de Icône menu framework global (surgissant, non épinglable).

    • Bouton déconnexion.


    📱 Menus :

     • Menus dynamiques selon les droits utilisateurs.

    Menu framework toujours visible.

    Menu module contextuelsession et intégré au dashboard de l’application.logs d’accès centralisés


  •  

    📈 Évolutions prévues

    • Intégration de l’intranet dans la marge droite du dashboard.

    • Automatisation des déclarations de fonctionnalités.

    • Éventuelle interface CRUD générique à venir pour accélérer les développements.