Re: définition des termes

Gregoire Cachet <[email protected]> Mon, 29 Mar 2004 23:51:43 +0200
Newsgroups gmane.comp.web.blogv2.devel
Message-ID <[email protected]>
Olivier Pascal wrote:

>
>Gregoire, par contre je n'ai toujours pas bien compris ton terme de "plugin" ?
>  
>
oui, je sais qu'il y a une ambiguité depuis quelques temps la dessus, et 
que j'ai très mal choisit mes termes ...

en gros, je fonctionne avec deux niveau d'éléments pour travailler sur 
une donnée :

- le niveau plugin, un niveau de base en quelque sorte : quand on 
l'appelle on dit ce qu'on veut (les catégories filles de 'ROOT' par 
exemple etc ...). Il va chercher la liste dans l'index situé dans la 
base de données et retourne une liste d'éléments. Chaque élément 
représente une donnée. On peut ensuite travailler sur chaque éléments ou 
bien sur toute la liste d'éléments. Il y aura un plugin pour gérer les 
catégories, un pour les articles, un pour les commentaires etc ... C'est 
la partie intimement liée à la donnée et il sait comment elle est stockée.
- le niveau module, qui est spécialisé pour réaliser une opération. Par 
exemple j'ai fait un module SubCategories, qui est capable de faire une 
liste de catégories descendant d'une catégorie donnée. Le module fait 
une requete sur le plugin, gère le cache de la donnée suivant ce que lui 
indique CacheManager et est capable de mettre en forme en partie la 
donnée. On peut la sortir au format DATA, un format basique qui sera mis 
en forme plus tard, ou un format de plus haut niveau comme du XHTML : 
par exemple pour la liste des sous catégories, je peux sortir ca comme 
une liste <ul><li>...</li></ul>.

Cette dernière fonctionnalité n'est pas forcément necessaire pour tout 
le monde, mais elle permettra de faire de la mise en cache partielle 
très efficace. Je l'ai mise en place parce que je sais que ca peut me 
servir un jour et cela ne m'a pas couté grand chose à developper. Si 
vous souhaitez faire une seule mise en forme de la donnée, vous pouvez 
travailler en mode DATA, et mettre en forme à la fin.

Attention : une mise en forme intermédiaire au niveau du module (en 
XHTML par exemple) n'exclu pas un remaniment à la fin de la globalité 
d'une page. Il permet juste de macher le boulot. Je pense en particulier 
à une utilisation pour faire du PDF : on peut sortir du XSL-FO au niveau 
du module et faire la génération du PDF à la fin.

Bon, il y a des termes à redéfinir dans ce que j'ai fait. Surement des 
choses à modifier en fonction de ce que vous imaginiez du moteur. J'en 
suis parfaitement conscient et c'est ce que j'avais prévu. J'ai du faire 
un peu ma cuisine perso pour essayer d'avancer un maximum avant que je 
soit plongé dans mes concours ...


-- 
Grégoire Cachet - Développeur intégrateur chez Audacy
http://www.zwiffer.org           http://www.audacy.fr
Mangeur de cigogne    http://mangeur-de-cigogne.info/