Comme je le disais dans le billet précédent, j'ai passé la nuit à faire du PEAR. Bon. Très bien. Je m'en vais vous parler de PEAR::HTML_Template_Flexy, et, par extension, dériver sur le modèle MVC, en espérant que quelqu'un de passage saura répondre à l'interrogation que je vais développer ici.

Donc, ça commence dans la doc de Flexy où il est dit la chose suivante:

Flexy template is normally called from within a Controller Class (in the Model,View,Controller paragam).

Qu'on peut traduire par:

Flexy est normalement appelé depuis une classe Controller (dans le pattern Model, View, Controller)

(Oui mon français reste très anglais, désolé)

Ok. Très bien. Sur le coup, je ne me suis pas posé de question, j'ai fait mon petit Controller, avec une méthode statique Factory pour l'instancier. Et puis tout à l'heure, en rentrant chez moi, j'ai réfléchi un peu au modèle MVC, et au peu de connaissances que j'ai sur le sujet. Qu'on me corrige si je me trompe, mais le MVC ne se décompose-t-il pas ainsi:

  • le Model, qui décrit ce qu'on pourrait appeler l'architecture de stockage et d'accès aux données (backend SQL/fichiers, etc / DAO / DAGO / etc). Le modèle de données donc.
  • le Controller, qui reçois la requête, l'analyse et la traite, autrement dit, qui contient la logique métier de l'application, qui controle finalement le déroulement de l'application.
  • la View, qui dessine l'UI, qui offre une vue de ce qui se passe à l'utilisateur.

Voilà, c'est, à peu de choses près, ce dont je me souviens de ce que j'ai pu lire ça et là sur le net, et surtout, c'est cohérent, du moins je trouve. Et donc dans cette optique, Flexy étant un moteur de template, c'est à dire finalement d'affichage, je l'aurai plutôt appelé depuis une View, non ?

Alors franchement, si quelqu'un qui connait un tant soit peut le modèle MVC passe dans le coin, merci d'avance de m'éclairer sur la chose. Sont-ce les devs de Flexy qui se fourvoient ? Ou bien, plus plausible, est-ce moi qui n'ai pas saisi les subtilités du MVC ?

Bien sur, toutes les suggestions sont les bienvenues, qu'elles viennent d'un maître du MVC ou pas, et même de l'ignorant complet (sur le MVC) qui n'apportera qu'une pierre de bon sens agricole (private joke, désolé) au schmilblick.

EDIT: Wikipedia propose un article sur le modèle MVC. Bon, la décomposition est, à peu de chose près, la même que la mienne: ils mettent la logique applicative dans le Modèle. Mais ça ne change pas le fond de l'histoire.