Le moteur de template est une bonne solution, mais pour de petits projets ça n'en vaut pas forcément la peine.
D'ailleurs, PHP est déjà un moteur de template en soi : Il suffit d'être rigoureux et de respecter la séparation entre traitement et présentation.
Par exemple tu peux avoir un fichier qui ne sert qu'à effectuer tous les calculs, requêtes à la BDD, transformations de texte, dates, etc, création de tableaux et que sais-je. Dans un deuxième fichier, tu n'as que du code HTML agrémenté d'echo et de boucles PHP si besoin.
Un troisième fichier (ou pas forcément) peut se charger d'inclure les différents fichiers de traitement et de template ainsi que les fichiers de fonctions, de paramètres, etc, suivant ce qui est nécessaire.
Je ne suis pas un professionnel et j'ai parfois quelques projets à coder pour d'autres personnes. Le dernier en date, un tout petit projet auquel j'ai appliqué ce système de template (donc "moteur de template" créé par moi) m'a pris trois jours à coder, permet de changer totalement le design rien qu'en utilisant des CSS (pour les couleurs et les images) ou de changer carrément l'emplacement des blocs en modifiant le code HTML du template. (pour un petit apperçu :
http://fredetglop.free.fr )
Ce que j'ai gagné à coder ainsi : Très grande lisibilité de mon code (dès qu'on a compris comment fonctionne le moteur de template, puisque je n'ai pas fait de doc

), ajout/retrait de blocs très facile pour modifier une page du site, changement de design très facile, etc.
L'inconvénient est par contre que ce moteur de template n'est pas réutilisable puisqu'il n'est fait que d'includes et d'une séparation rigoureuse entre le traitement et la présentation (donc spécifique à ce site-là).
Pour en revenir aux echo
Personnellement, si je n'utilise pas de moteur de template, ma page se décompose en au moins deux parties :
1. Traitement PHP
2. Bloc HTML
La première partie s'occupe des requêtes vers la base de donnée et du traitement des informations;
La seconde partie est la structure HTML avec des blocs PHP à l'intérieur si nécessaire.
J'utilise des
echo lorsqu'il faut afficher une ou deux variables mais évite le plus possible d'y inclure de grandes portions de HTML.
Je préfère
<p><?php echo $variable; ?></p>
à
<?php echo '<p>'.$vatiable.'</p>'; ?>
Pour si peu de balise, je fais des exceptions, mais c'est juste pour montrer le principe.
Et puis quelque chose de très pratique en PHP, quand tu utilise des boucles ou des conditions, c'est cette structure qui te permet de fermer ton bloc PHP tout en restant dans la boucle (ou la conditionnelle) :
<?php if ($variable == $condition): ?>
Code HTML dans lequel il est toujours possible d'inclure <?php echo 'des blocs PHP'; ?> sans aucun problème
<?php else: ?>
C'est un if/else tout à fait classic
<?php endif; ?>
(Marche aussi avec for, while, each et foreach)
Modifié par superjun (03 Aug 2008 - 15:26)