27 votes

Pourquoi utiliser un moteur de template avec un framework?

J'ai récemment découvert le PHP framework Kohana (qui est génial) et a été la lecture d'un thread à propos de l'utilisation en conjonction avec un moteur de template comme Smarty ou Twig. Ma question est: pourquoi s'en préoccuper? Sûrement un framework MVC, par définition, est un moteur de template. Même "raw" de PHP est, sans doute, un moteur de template. Quels sont les avantages de l'ajout d'un autre niveau d'abstraction sur le dessus de ce qui est déjà présente dans un cadre comme Kohana?

EDIT - Je me rends compte qu'un framework MVC n'est pas la même chose qu'un moteur de template, mais sûrement, le V de la partie fait le même travail? Peut-être une meilleure façon de le phrasé des choses serait, pourquoi ajouter un moteur de template sur le dessus de la V partie d'un framework MVC?

16voto

mauris Points 19666

Tout d'abord, raw PHP n'est PAS un moteur de template.

Ensuite, framework MVC définit que le cadre est divisé en Modèle, la Vue et le Contrôle. Cela ne signifie pas que le cadre a un moteur de template, bien que la Vue peut être intégré avec un natif ou externe moteur de template. Ainsi, le cadre peut ou peut ne pas avoir un moteur de template.

Troisièmement, La Vue != de modèle. La vue est seulement en se référant à la façon dont les données sont affichées - il n'y a pas de modèle impliqués généralement, alors que le moteur de modèle fait référence à un morceau de code capable de mettre les données bien dans les modèles qui vous permet de réduire considérablement la nécessité de modifier tous les fichiers lorsque vous pouvez les modifier dans les modèles

Enfin, le cadre d'utilisateurs préfèrent utiliser un moteur de template comme Smarty sur le natif modèle de moteur dans le cadre. Vous n'avez pas besoin d'apprendre de nouvelles balises dans le native moteur de template.

16voto

coreyward Points 26109

J'ai deux très bonnes raisons je pense, pour ce faire...

  1. La création de balisage qui se répète sur tout le site dans un format uniforme est plus facile, de plus, vous pouvez mettre à jour plus tard, sans beaucoup de grepping.
  2. Si c'est pour une entreprise réelle, les gens, la détermination du contenu ne sont pas susceptibles d'être vraiment familier avec le HTML, beaucoup moins PHP. Avoir un modèle simple de la langue qui garde styles à la recherche de la bonne façon et génère des balises valides sans trop de code de la connaissance est vraiment à portée de main.

8voto

DGM Points 14007

Sauf si vous autorisez les balises courtes,

 {$foo}
 

est beaucoup plus lisible que

 <?php echo $foo; ?>
 

Multiplié sur un grand projet, il s'additionne.

6voto

IfLoop Points 59461

Une grande raison pourquoi vous auriez besoin d'un distinct moteur de template est parce que les premières PHP est un peu trop pour la présentation de votre site. Si c'est juste vous faire de votre site, et vous avez une bonne idée sur la façon dont les templates du site, de quoi tenir ensemble, alors ce n'est pas vraiment un inconvénient, mais pour les grands projets, il est dans la manière.

Si votre projet a dépassé un seul développeur, ou si vous voulez ajouter un designer avant même que PHP est probablement trop dur d'un langage pour exprimer la présentation. Construit sur le modèle des langues sont à l'avantage parce qu'elles sont simples, et ne pas vous donner de soi-longueur de corde pour se pendre.

Les grands projets, même quand ils n'ont pas besoin de beaucoup d'entrée de plusieurs développeurs, peut prendre la forme libre de PHP un peu lourd. le but construite moteur de template propose (ou impose) une structure de base de la façon dont chaque modèle s'adapte avec le reste.

2voto

Justin Johnson Points 16243

Mauris a déjà couverts pourquoi MVC != moteur de template, mais je voudrais ajouter que le plus puissant, le moteur de template est, la plus propre et la plus concise vos modèles sont. Cela rend particulièrement facile pour les gens qui ne sont pas familiers avec PHP pour les modifier (par exemple: si un concepteur/développeur front end besoin de modifier le code HTML). En général, MVC, ne pas se vanter de ce genre de fonctionnalité.

Jetez un oeil à cet exemple de Smarty. Je n'ai jamais utilisé le moteur et la réponse à cette question est la première fois que j'ai jamais vu sa de balisage, mais je peux déjà vous dire exactement ce que sa fait.

De plus, la quantité de code que vous avez à écrire, c'est nettement moins depuis Smarty et les autres moteurs de prendre soin des choses banales pour vous comme une alternative de lignes de couleurs et de contenu alternatif pour le vide d'ensembles de données dans le premier exemple, et des choses stupides comme le formatage <select> listes dans cet exemple.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X