3 Architecture du Framework SAND
Emmanuel ROY edited this page 2022-08-23 04:46:04 +02:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Ce framework est nommé SAND pour l'acronyme récursif (Simplement [AND et] un Autre Nouveau Dossier),

La racine contient les dossiers suivant :

  • application : dossier contenant différents fichiers, propre à lapplication et au framework dont on détaillera le contenu plus bas.
  • console : dossier contenant les commandes console propres au framework et à lapplication
  • data : dossier contenant des données qui sont chargé par lapplications ou le framework
  • docs : dossier contenant la documentation de lapplication
  • domain : dossier contenant les classes propres à la manipulation du domaine visé par lapplication, ces classes peuvent être testées unitairement par PHPUnit
  • output : dossier contenant les sorties des commandes console de lapplications, ce peut être des logs ou des fichiers de traitement
  • public : dossier contenant la racine publique de lapplication, le serveur apache doit pointer sur ce dossier pour que le reste ne soit pas accessible, il contient tous les assets (css, js) de lapplication ainsi que le fichier index.php et .htaccess redirigant toutes les requêtes vers lindex.
  • tests : dossier contenant les fichiers de tests unitaire ou fonctionnels
  • vendor : dossier créé par composer lors de la récupération des paquets nécessaire à lapplication, contient aussi lautoloader de lapplication généré à la volée par composer

Le dossier application contient les dossiers suivants:

  • class : dossier contenant les fichiers propres au framework. Ne doit pas être modifié.
  • config : dossier contenant les fichiers de configuration, normalement lors de la récupération du dépôt, les fichiers sont a renommer et a ancrer avec les bonnes valeurs
  • include : dossier de développement contient :
    • actions : dossier contenant les actions réutilisables dans les vues de lapplication
    • conduits : dossier contenant le contrôleur qui est conduit par le routage symfony, ici utilisé exclusivement pour générer des réponses AJAX
    • controlleurs : dossier contenant les contrôleurs de lapplications, nous verrons plus tard le modèles MVC propre au framework, mais il faut savoir que les controlleurs contiennent les accès en bdd de la page correspondant à son nom
    • modeles :dossier contenant les modèles de lapplication, il faut savoir que les modèles ont lextension .model et contiennent les variable propres à la page, comme le title, la description ou plus récemment le fil dariane
    • vues : dossier contenant les fichiers blade ou twig utilisé dans les pages, les actions et les conduits dont voici le détail :
      • cache : dossier contenant les fichiers de cache généré par le moteur de rendu
      • layout : dossier contenant les layout des pages
      • system : dossier contenant le layout systeme
      • view : dossier contenant toutes les vues de lapplication, une convention de nommage peut être établie suivant le domaine de lapplication, par exemple, toutes les vues des actions doivent commencer par action et toutes les vues des conduits doivent commencer par le nom du conduit duquel ils sont appelés
  • logs : dossier contenant les logs générer par lapplication, une classe dédiée aux logs est contenue dans le framework
  • modules : dossier contenant les modules de lapplication, il faut savoir que le framework peut contenir des applications modulaires, genre des applications symfony, wordpress, etc… toutes applications externe php peut avec un peu de doigté peut être intégré à une application, typiquement on peut intégrer un module de dépôt git genre gitlist à lapplication que lon est en train de développer.
  • objets : dossier contenant les objets de session du framework, ce dossier peut être modifié par lutilisateur, il contient des classes qui sont utilisé dans le cadre de la gestion de session, par exemple lauthentification CAS
  • traitements : dossier contenant les traitements de formulaire selon le respect du pattern PRG (Post Redirect Get)

Le dossier console contient les dossiers suivants:

  • command : dossier contenant les commandes console du framework et de lapplication
  • skel : dossier contenant les squelettes utilisés lors des appels console, par exemple pour créer un nouvelle page vous pouvez utiliser la commande : php bin.php page:add