Workflow technique du coeur

Détails de l’implémentation actuelle du coeur. On est ici donc dans le code d’un point d’entrée, qui instancie un objet de type jRequest, un coordinateur et appel la méthode process du coordinateur.

Instanciation d'un objet jRequest

On prendra ici comme exemple un request “classic”. Le constructeur de jRequest exécute ceci :

  1. extraction des différentes variables de l’url (host, chemin vers point d’entrée, path_info etc..)
  2. appel de la méthode parse du moteur url indiqué dans la config
    • chargé d’extraire les paramètres de l’url
    • parmi ces paramètres, il peut y avoir le module/action
    • création d’un objet jUrl avec tous ces paramètres
  3. stockage de l’objet jUrl dans une propriété url
  4. stockage des paramètres de jUrl dans une propriété params

Instanciation d'un coordinateur

  1. stockage du request
  2. lecture du fichier de configuration
    • stockage dans un fichier temp de la liste des chemins de modules/plugins
  3. chargement des plugins : instanciation

Appel de la méthode process

  1. recupération des paramètres module/action via jRequest::params
  2. vérification validité module sinon erreur
  3. création selecteur jSelectorAct sur le module/action
  4. appel de la méthode beforeProcess des plugins
  5. exécution de l’action
    1. instancie l’actiongroup indiqué dans ses propriétés
    2. appel la méthode indiquée de l’actiongroup
      • durant cette execution, la méthode getResponse() doit être appelée
      • elle instancie un objet jResponse correspondant à la réponse demandée.
      • Après cette instanciation, la config indiquée dans le jActionDesc est appliquée
  6. si pas de réponse (gJCoord?response) : erreur
  7. appel de la méthode beforeOutput des plugins
  8. appel de la gJCoord?response?output qui génère la sortie
  9. appel de la méthode afterProcess des plugins
Download in other formats: Plain Text