Note Développeur

Le projet utilise une architecture MVC

point d'entree et configuration

  • configuration
    • le fichier config.php contient la configuration générale de l'application
    • le fichier payboxconfig.php contient la configuration spécifique au paiement paybox
  • point d'entree
    • public/<APP>/index.php (ici <APP> vaut default pour le frontoffice et admin pour le backoffice)
    • public/<APP>/.htaccess (conf apache a base de rewrite pour forcer toutes les requetes a passer par index.php indique au dessus).

Architecture

  • core/*.class.php : classe commune a tout le projet contenant toutes les classes de base dont sont derivee les autres
  • Model: (interaction php <-> base de donnee)
    • data/crud/<ELM>.data.php : classe de base concernant une table (modele sur core/crud.sample.php)
    • data/<ELM_VAR>.data.php : classe fille de <ELM> contenant eventuellement un variante (modele sur core/data.sample.php)
  • View: Affichage
    • apps/<APP>/views/<CTRL_NAME>.php
    • apps/<APP>/views/<CTRL_NAME>/<CTRL_FUNC>.php
  • Controller: le code lui meme
    • apps/<APP>/controller/<CTRL_NAME>

Note, par defaut, <CTRL_NAME> vaut "root" et <CTRL_FUNC> vaut "default"

deroulé d'une connexion

  • public/<APP>/index.php : charge les classes de base (core), la config, definit le nom <APP> et lance un objet Dispatcher (defini dans core/dispatcher.class.php)
  • Dispatcher:
    • parse l'url (methode handleUrl) definit: la langue (fr/en), la "command" avec CTRL_NAME, CTRL_FUNC et PARAMETER (usuellement c'est <LANG>/<CTRL_NAME>/<CTRL_FUNC>/<PARAMETER>)
    • appel dispatch()
      • charge la classe bootstrap (apps/<APP>/bootstrap.php (definit quel css, js, librairie php sont chargee dans l'application <APP>). La classe "bootstrap" herite de la classe "Controller"
      • charge le controller correspondant apps/<APP>/controller/<CTRL_NAME>.php et la classe <CTRL_NAME>Controller (cette classe herite de bootstrap)
      • lance la methode execute() du controller (definie dans core/controller.class.php)
        • execute() cherche a lancer une methode _<CTRL_FUNC> de la classe <CTRL_NAME>Controller (apps/<APP>/controller/<CTRL_NAME>.php) si elle existe
          • cette methode gere les histoires de GET/POST, remplissage de variable utilisee dans la vue
          • execute() lance ensuite les differentes vue (views): head, view, header, footer qui sont en fait essentiellement du code HTML avec un peu de PHP:
            • head: apps/<APP>/views/head.php (head peut etre modifie par la methode setHead()
            • view: apps/<APP>/views/index.php (index peut etre modifie par la methode setView()
            • header: apps/<APP>/views/header.php (header peut etre modifie par la methode setHeader()
            • footer: apps/<APP>/views/footer.php (footer peut etre modifie par la methode setFooter()
  • fin