Skip to main content

Software Architect GPT

 

🏰 Présentation du projet

 


Le projet est une plateforme modulaire PHP structurée en deux grandes parties :

 

  • /framework/

    Contient le cœur du framework commun à toutes les applications :

     

    • Bootstrap (init.php, config.php, sessions, etc.).

    • Modules globaux (Common, User, Admin, etc.).

    • Classes partagées (Controllers, Models, etc.).

    • Dépendances Composer (vendor/).

    • Autoload PSR-4 (Apps\ pour les applications).

     

  • /applications/

    Contient les modules applicatifs (exemples : hjc, cc, dashboard), chacun étant une mini-application :

     

    • Assets/ (CSS, JS, Images),

    • Config/ (configurations locales comme app_config.php, routes.php),

    • Controllers/ (contrôleurs spécifiques),

    • Models/ (modèles spécifiques),

    • Views/ (vues spécifiques),

    • public/ (front controller spécifique du module).

     

 

 


 

 

🛡️ Fonctionnement général

 

 

  • Chaque module dispose de son propre Front Controller (public/index.php) qui :

     

    • Vérifie la session utilisateur ($_SESSION['user_id']).

    • Charge un router mixte :

       

      • Si page=x est donné et correspond à une simple vue (Views/x.php), il l’affiche.

      • Si page=controller/action, il instancie dynamiquement le contrôleur (Controllers/) et appelle la méthode correspondante.

      • En cas d’erreur ou d’absence de route, il redirige vers une page d’accueil ou une 404.

       

     

  • Le framework fournit le socle commun :

     

    • Gestion centralisée de l’authentification et des droits.

    • Gestion de l’affichage des templates de base (entête, pied de page, etc.).

    • Gestion commune des sessions, des erreurs, des configurations globales.

     

  • Le routing est défini soit :

     

    • Par un tableau de routes simples dans Config/routes.php pour les vues.

    • Par des conventions de nommage pour les contrôleurs et méthodes pour les traitements métiers.

     

 

 


 

 

📚 Fonctionnement MVC des modules

 


Chaque application/module suit un pattern MVC simplifié :

 

  • Modèle (Models/) : gestion des données (peu utilisé dans les modules simples pour l’instant).

  • Vue (Views/) : affichage HTML.

  • Contrôleur (Controllers/) : logique métier et appel aux vues.

 


Le routeur détecte si l’appel est destiné :

 

  • À une vue statique (Views/*.php),

  • Ou à un contrôleur/méthode (Controllers/*Controller.phpmethod()).

 

 


 

 

🛡️ Objectifs demandés à Software Architect GP

 

 

  1. Renforcer et généraliser le router mixte pour tous les modules :

     

    • Gestion native des vues simples et des contrôleurs/méthodes.

    • Système d’erreur 404 propre en cas d’absence de route/méthode/vue.

    • Option future : routing avancé (POST, GET, paramètres dynamiques).

     

  2. Standardiser le CRUD sur les entités :

     

    • Chaque module pourra gérer des entités (ex: ventes, clients, utilisateurs) avec un CRUD minimal :

       

      • Create : Formulaire de création et insertion en base.

      • Read : Liste paginée des enregistrements.

      • Update : Formulaire de mise à jour.

      • Delete : Suppression logique ou physique.

       

    • Générer des contrôleurs type VenteController, ClientController avec :

       

      • list()

      • create()

      • store()

      • edit($id)

      • update($id)

      • delete($id)

       

     

  3. Assurer l’intégration harmonieuse avec le framework :

     

    • Le contrôleur devra pouvoir appeler facilement :

       

      • le modèle du module (Apps\Module\Models\NomModel),

      • les vues du module (Views/*.php),

      • les composants globaux (Common, etc.).

       

     

  4. Préparer un système évolutif :

     

    • Pouvoir ajouter des middlewares dans les modules (ex : vérification des permissions),

    • Pouvoir gérer le passage de paramètres (id dans l’URL, pagination),

    • Pouvoir appeler une action RESTful plus facilement (GET, POST, PUT, DELETE).

     

 

 


 

 

🏗️ Structure actuelle type

/var/www/html/
├── framework/
│   ├── app/
│   ├── src/
│   ├── vendor/
│   ├── .env
│   ├── composer.json
│   ├── manage_app.php
│   └── README.md
└── applications/
    ├── hjc/
    │    ├── Assets/
    │    ├── Config/
    │    │    └── routes.php
    │    ├── Controllers/
    │    ├── Models/
    │    ├── Views/
    │    └── public/
    │         └── index.php (routeur mixte)
    ├── cc/
    └── dashboard/


 

📜 Liste des éléments qu’il faudra prévoir/envoyer à Software Architect GP par la suite

 

 

  • 🛠️ Exemples de contrôleurs existants (VentesController, etc.).

  • 🛠️ Exemples de vues (Views/dashboard.php, etc.).

  • 📄 Un modèle d’entité simple (VenteModel.php) pour définir le CRUD.

  • 🧩 Le bootstrap et l’init actuels du framework pour voir la gestion des sessions, erreurs, config.

  • 🧩 Exemple de routes.php pour comprendre la structure des routes statiques actuelles.

  • 📄 Éventuellement l’extrait de la gestion centralisée d’authentification.

  • 📚 Normes internes souhaitées (nommage, PSR-4, gestion des erreurs, etc.).

 

 


 

 

🛡️ Résultat attendu

 

 

  • Un routeur commun solide utilisable dans toutes les applications.

  • Un socle CRUD modulaire, facilement personnalisable pour chaque module.

  • Une architecture légère, évolutive, respectant les standards de qualité modernes (PSR-4, MVC, bonnes pratiques PHP 8+).