2017-07-27 3 views
1

On m'a assigné la tâche de réécrire nos modèles faits maison avec Perl Template Toolkit.Template Toolkit: Extraction d'une partie d'un modèle

Nos modèles ont la possibilité d'extraire un fragment du modèle (et d'en faire du HTML) au lieu d'utiliser le modèle entier.

Comment le faire avec Template Toolkit?

La meilleure solution que je suis venu avec est la suivante:

Soit nous avons un modèle x.html avec le fragment A.

Le fragment doit être extrait dans un nouveau fichier. (Je dois le nommer comme x/A.html pour la cohérence.) Dans le modèle original x.html il devrait être remplacé par [% INCLUDE 'x/A.html' %]. Donc, je pourrais être en mesure d'utiliser soit le modèle complet x.html ou son fragment x/A.html. Probablement nous pouvons avoir plusieurs niveaux d'inclusion comme x/A/B.html.

Y a-t-il d'autres façons de le faire? (Je n'aime pas l'idée de le diviser en sous-répertoires comme décrit ci-dessus, mais je n'ai pas trouvé de meilleure solution.)

+1

Placez les éléments qui se répètent dans des sous-ensembles plus petits. Les modèles sont comme des fonctions à cet égard. Je ne les collerais pas dans des dossiers en fonction de l'endroit où ils sont (d'abord) utilisés, mais dans des dossiers en fonction de ce qu'ils font ou de ce qu'ils sont. Un modèle _product_ par exemple pourrait être utilisé dans le panier, sur une page de détails et dans un bulletin d'information. Il ne devrait pas être subdir à _cart_ juste parce que c'est là où il est apparu initialement. – simbabque

+0

@simbabque Votre réponse (bien, commentaire) n'est pas à ma question. Je n'ai pas donné la tâche de restructurer les gabarits et leurs parties, mais simplement de "traduire" à partir d'un "modèle" de modèle hérité en Template Toolkit moderne. C'est la seule tâche qui m'a été confiée. Je ne vais pas faire plus de travail de restructuration – porton

Répondre

2

Demandez-vous s'il existe une meilleure façon d'extraire le fragment du modèle parent?

(réponse est: non, c'est probablement la meilleure façon.)

Ou vous demandent est-il une meilleure façon d'organiser les Fragements extraits?

(La réponse est: pas vraiment meilleure réponse, partout aura son propre style maison - vous n'allez pas aller trop loin mal en choisissant une convention.)

conventions les plus courantes pour nommer que j'ai vu sont sous-répertoires x/A.html et les préfixes x_A.html. Que vous utilisiez le nom du modèle parent pour x ou que vous choisissiez de grouper par fonctionnalité, comme suggéré simbabque, c'est une autre question de goût: le regroupement par fonctionnalité évolue mieux sur les mises en page plus grandes et plus compliquées où vous réutilisez beaucoup de composants. Le regroupement par cas d'utilisation est conceptuellement plus simple dans les cas d'utilisation plus réduite avec peu ou pas de réutilisation des composants.