8721 sujets

Développement web côté serveur, CMS

Modérateur
Bonjour tlm,

Je pense que ma question va paraître un peu trollesque certes, mais je n'arrive pas à trouver l'intérêt d'un moteur de template. Quel est l'intérêt d'utiliser ce genre d'outils ? Php, n'est il pas le moteur de template par excellence (le code d'une vue) ? Pourquoi rajouter un traitement supplémentaire avant l'affichage finale ?
Modifié par niuxe (08 May 2013 - 13:26)
Modérateur
Les avantages sont pourtant multiples et énormes:

– À chaque projet, l'intégrateur/graphiste doit apprendre un nouveau langage. Ce qui l'habitue à devoir toujours apprendre de nouveaux langages.
– Généralement, un moteur ésotérique de templates est complètement indébugable, ce qui permet de ne pas avoir à débugger.
– Rajouter une couche supplémentaire pour pouvoir dire "J'ai un gros système bien burné"

Plus sérieusement, le seul et unique avantage de ces moteurs est lié à la méthode de travail: Dans des projets avec de nombreux intervenants, les dev peuvent ne pas avoir à se soucier le moins du monde de la partie front en empêchant ceux qui s'en occupent de pouvoir, intentionnellement ou pas, changer quelque chose sur le fonctionnel. Autrement, ça ne sert pas à grand chose à part à compliquer la vie des intégrateurs.
Je vois en général 2 arguments :

- La syntaxe est facile, c'est plus simple pour les intégrateurs
- Très peu de logique, ça force à avoir du code bien pensé

Dans la réalité :

- Pour avoir autant de flexibilité que du php pur, il faut ajouter pas mal de complexité avec les décorateurs et autres du coup :
- Ceux qui connaissent Php se sentent limités et galèrent à faire des trucs pourtant simples
- Ceux qui ne connaissent pas Php arrivent éventuellement à leur fins, mais pas nécessairement plus facilement que si c'était du Php

Après, Twig c'est du Sensio, largement pompé sur Django, ou là le système de template est plus approprié (mélanger du html avec un langage backend basé sur l'indentation ? mmmmm) mais pour du Php j'avoue que je ne vois pas l'idée...
Modérateur
HammHetfield a écrit :

- La syntaxe est facile, c'est plus simple pour les intégrateurs

Heuh non non non et non. Généralement la syntaxe est plus condensée, mais pas plus facile, parfois au contraire plus complexe car condensée. Elle peut devenir plus complexe au contraire:

{{ var|escape }}

<?php print escape($var) ?>

Il parait que la version 1 est plus facile? Faut être developper hardcore pour penser qu'un intégrateur est plus familiarisé avec la syntaxe Unix qu'une fonction. Le second est certes un peu plus long mais est plus clair pour le commun des mortels Smiley langue
Sans parler du fait que les langages de templates, t'en as d'autres tout le temps…

Après effectivement, quand on fait du java, python, ruby, c++, etc. ces langages n'étant pas des langages de templates, il en faut bien un, et mettre du php devant du python… je sais pas mais ça me paraît lourdingue…

Et un dernier avantages, un langage de template par son côté limitatif peut être ouvert à des end users. Pour faire un template d'email automatique ou des choses de ce genre. Leur proposer en PHP, on voit tous les problèmes ^^. C'est le principe du BBcode d'ailleurs. Pourtant il n'y a qu'à voir le nombre d'intégrateurs qui se plantent ici avec le BBcode pour les liens pour constater que les langages de templates ce n'est pas plus facile (pour celui qui doit l'utiliser)

Mais quand le code est en PHP, je ne sais pas, ça me fout les glandes.
Modérateur
^^

Pas faux, j'ai tendance à oublier cette syntaxe, j'aime bien les print aussi, plus verbeux mais plus clairs!
Hello, effectivement adepte de Smarty depuis longtemps, cette seule citation justifie l'usage d'un moteur de template :

a écrit :
Très peu de logique, ça force à avoir du code bien pensé


Ça permet pas mal de montrer que si tu fais trop de logique backend dans tes templates, bah c'est que ton backend peux encore être amélioré pour répondre au mieux au besoin. Genre si dans ta vue t'as pas le stock qu'il te faut, réajuste ton controleur.
Modérateur
HammHetfield a écrit :
Je vois en général 2 arguments :

- La syntaxe est facile, c'est plus simple pour les intégrateurs
- Très peu de logique, ça force à avoir du code bien pensé

Dans la réalité :

- Pour avoir autant de flexibilité que du php pur, il faut ajouter pas mal de complexité avec les décorateurs et autres du coup :
- Ceux qui connaissent Php se sentent limités et galèrent à faire des trucs pourtant simples
- Ceux qui ne connaissent pas Php arrivent éventuellement à leur fins, mais pas nécessairement plus facilement que si c'était du Php

Après, Twig c'est du Sensio, largement pompé sur Django, ou là le système de template est plus approprié (mélanger du html avec un langage backend basé sur l'indentation ? mmmmm) mais pour du Php j'avoue que je ne vois pas l'idée...


J'ai à peu près le même avis que toi. Par contre, je n'avais pas fait la relation avec les autres langages et framework.

kustolovic a écrit :
Pour faire un template d'email automatique ou des choses de ce genre.

Je pense que c'est un mauvais argument. On peut très bien faire un template avec la vue html combinée avec le PHP.

a écrit :
Ça permet pas mal de montrer que si tu fais trop de logique backend dans tes templates, bah c'est que ton backend peux encore être amélioré pour répondre au mieux au besoin. Genre si dans ta vue t'as pas le stock qu'il te faut, réajuste ton controleur.

Oui en effet, ça permet d'organiser un peu mieux son code. Mais si à la base le code est bien organisé en amont, je ne pense pas que ce type d'outil ait un intérêt.
a écrit :
Mais quand le code est en PHP, je ne sais pas, ça me fout les glandes.

Je connais dans mon entourage un phphobe

@jb_gfx : +1

Merci en tout cas à vous tous pour votre avis sur le sujet.
Modifié par niuxe (11 May 2013 - 22:51)
Modérateur
niuxe a écrit :

Pour faire un template d'email automatique ou des choses de ce genre.

Je pense que c'est un mauvais argument. On peut très bien faire un template avec la vue html combinée avec le PHP.

Je voulais parler de templates ouverts aux end-users. Permettre à tes utilisateurs de rédiger du php, c'est plutôt une sacré faille de sécurité Smiley langue
Modérateur
kustolovic a écrit :

Je voulais parler de templates ouverts aux end-users. Permettre à tes utilisateurs de rédiger du php, c'est plutôt une sacré faille de sécurité Smiley langue


Ah oui, oups ! Smiley confused . En effet, cela peut être un cas où on peut utiliser cet outil. Je pense que ce genre d'outil doit apporter une solution à un problème spécifique.
Modifié par niuxe (11 May 2013 - 23:10)