Conseil, moteur de template ou pas ?

  • Auteur de la discussion Auteur de la discussion mikaweb
  • Date de début Date de début
WRInaute discret
Bonsoir tout le monde,

Je me pose pas mal de questions depuis un petit moment sur l'utiliter d'utilisé un système de template pour un de mes sites en PHP.

Je dois régulièrement modifier certains fichiers que j'inclus dans d'autres fichiers, via un petit include, et au final je me retrouve par exemple avec 5 fichiers de sidebar ou il n'y a que une différence minime entre chaque fichiers.

Même souci pour le fichier que j'inclus en haut de page avec les informations d'en tête.
Lorsque je suis sur un article je reprends son titre pour l inclure dans la description et la balise title mais quand je suis sur la page d'acceuil je ne le peut pas. Problème identique pour chacune de mes pages uniques tels que sitemap, contact,credit,partenaire,recherche ou la balise titre est à chaque fois différence ainsi que la description donc à chaque fois je me retappe un nouveau fichier presque identique aux autres et le souci est que j'ai ma barre de navigation dans ce fichier donc si je la change, je dois la changer dans chaque fichier, problème identique pour la sidebar et les autres fichiers que je dois inclure.

Ma question est de savoir si y a moyen de faire cela proprement à moins que cela ne le soit déjà mais j'en doute :lol: et aussi savoir si utiliser un système de template me simplifierait la vie pour tous ces petits réglages.
Je demande cela car ça ne me semble pas "propre" de faire cela en PHP pur, j'aimerais si possible éviter d'utiliser un système de template vu que c'est un nouveau langage à apprendre, de la POO ce que je n'aime pas trop et c'est beaucoup de temps à prendre sur moi donc je veux une petite confirmation de la qualité de la méthode utilisée actuellement qui ne me parait pas propre, avoir plus de 20 fichiers à inclures alors que normalement 3 devraient jouer.

Je vous remercie.
 
WRInaute discret
Bonsoir,

Premièrement PHP est un système de template en lui-même puisqu'il permet d'exécuter du code dans un squelette html pré-défini.

Maintenant, il y a des systèmes de templates qui adoptent le modèle MVC qui est en quelque sorte une séparation du code html et du code php. Mais on peut réaliser cette séparation sans moteur de template, simplement en changeant ses pratiques de programmation.

De toutes façons, je pense que quand on code un site tout seul, le MVC est plus chiant qu'autre chose. Je pense que ton problème est plutôt au niveau de l'organisation des fichiers.

Par exemple tu dis que tu dois modifier ta barre de navigation dans tous tes fichiers. Pourquoi ne pas créer un fichier barre_navigation.php que tu incluras dans tes autres fichiers. De cette façon, tu modifie ce fichier et ça se répercuteras dans tous les autres.

Mes sites tiennent généralement grâce à deux inclusions. J'ai un haut de page (header.php) et un bas de page(footer.php).

Le fichier header.php contient entre autres la balise title, avec une variable.
<title><?php echo $title;></title>


Quand je veux créer ma page contact, je fais:

Code:
$titre = "Page de contact"
include "header.php";
//code pour la page de contact
include "footer.php";
 
WRInaute accro
En fait tu as besoin de faire des templates différents par catégorie de page (index, article seul, page statique, etc...)

Tu es en train de réinventer le fil à couper le beurre.

Un bon CMS, ou un blog te fait ça tout seul comme un grand, avec un header unique, et des fonctions PHP (la fonction étant grosso modo, je compte le nombre d'articles, je regarde la catégorie de la page, et je décide de ce que je mets dans le title, le h1 et la descritpion, en fonction de la base de données).

Et tout ça avec un seul template de header, une seule fonction php (avec un appel éventuel à des sous fonctions) et une base de données asses simple.

Moi j'utilise wordpress + thème sandbox + plug in all in one SEO, et c'est nickel.
 
WRInaute accro
>> retrouve par exemple avec 5 fichiers de sidebar ou il n'y a que une différence minime entre chaque fichiers

Travail sur le même fichier et l'astuce pour les petites modifs se fait en connaissance de l'url sur laquelle tu pointes.

Code:
// prend l'url
$url = $_SERVER["REQUEST_URI"];
// un mot clef unique a l'url
$mot_clef = '';
// si le mot clef existe dans l'url
$rel = strstr ($url,$mot_clef);
if($rel != FALSE) 
{
// affiche ta petite difference
}
 
WRInaute discret
Merci de vos conseils.
Je ne veux pas de CMS car je préfère garder le controle totale de mon site, je ne veux pas du préfabriqué même si y en a de très bon comme Modx par exemple.
Je veux quelque chose qui réponde à mes attentes et uniquement à celle-ci, je veux pas des plugins à tout va etc...
Wordpress, Dotclear c'est génial pour des blogs mais sa s'arrête là selon moi. J'utilise déjà dotclear sur un blog et je connais ses limites.
La première astuce de Bigjet va déjà bien me donner un coup de main.
Ensuite comme je le pensais le souci vient de comment j'ai concu mes pages avec mes includes. Donc y a facilement moyen de modifier tout cela.

Ca devrait m'éviter d'avoir recours à un moteur de template ce qui me soulage, j'y connais presque rien en template mais est-ce vraiment aussi mauvais qu'on le dit ?
Je développe seul, ou presque on m'aide un peu mais sans plus, donc c'est plus facile sans c'est bien sa ?


merci à tous ;)
 
WRInaute occasionnel
ModeliXe ?

On est pas obligé d'avoir un CMS pour utiliser un bon système de template pour php.
C'est, à mon avis, le moteur de template qui offre le meilleur confort, et étant à la fois soupe et très accessible. Son execution est rapide, il intégre un système de cache, une gestion des zones et des variables.
Sinon il y a aussi PHPlib (système de template utilisé par phpBB), ou Smarty (qui a l'avantage de permettre l'insertion de code php directement dans les templates, mais qui a une syntaxe plus compliqué à comprendre).
 
WRInaute discret
PHPlib je connais assez bien pour avoir été longtemps sur phpbb.

J'aimerais aussi savoir si avoir un système de cache est "obligatoire" tout en sachant que ce site sera en mutualisé ?

Smarty intègre un moteur de cache assez performant je crois.
Car pour faire du cache avec un système de template sa me parait plus facile à faire et puis je n'ai pas besoin d'utiliser un monstre comme smarty, y en a pleins d'autres qui sont tout aussi bien et plus rapide.

Je veux simplement savoir si un système de cache est essentiel tout en sachant que j'ai des pages d'articles qui peuvent être modifié à tout moment, des articles statiques et des pages qui changent très peu mais qui changent quand même.

Merci
 
WRInaute occasionnel
PHPlib c'est sûr que c'est le top du top, mais pas forcement le plus accessible, quoi que ... Enfin si t'as l'habitude de traîner un peu dans le code de phpBB, t'auras aucun problème donc c'est celui que je te conseillerai.

Smarty, c'est totalement subjectif, mais j'aime pas. C'est lourd, niveau rapidité d'exécution y a mieux, c'est une vraie usine à gaz.

Sinon un système de cache n'est pas obligatoire, mais il te permettra peut-être (voir sûrement) d'éviter de passer trop précocement à un mutu plus coûteux, voir un dédié. C'est pas essentiel, mais si t'as un site dynamique (= tous le contenu ou presque inscrit dans ta bdd) et assez fréquenté, ça peut te permettre d'accélérer ton site, et de réduire la charge serveur.
Si ton site change souvent c'est pas un problème, un bon système de cache s'actualise normalement assez vite pour faire paraître les modifs. Mais l'idéal pour un système de cache pour un site très modifié, c'est quand même d'avoir un cache non pas qui se régénère au bout d'un temps X (avec une tache cron, manuellement, ou par l'utilisateur), mais qui se rafraîchit uniquement quand il y a une modification au niveau de la BDD. En gros, à chaque insert / update, tu met à jours ton cache, et que à ce moment.
C'est ce que j'avais fait pour un de mes sites, j'ai des fichiers qui n'ont jamais eu besoin d'être remis en cache (= gains en bande passante énorme), et d'autres pages régulièrement. J'avais donc mes mises à jours en temps réel, tout en ayant un script peu gourmand.

C'est top quand même un système de cache 8)
 
WRInaute discret
Tu aurais un lien d'un système de cache qui ferait ce que tu dis ? C'est à dire mettre en cache, ou updater le cache uniquement quand il y a une mise à jour dans la bdd.
J'ai lu tout le topic épinglé ici mais il ne fait pas cela je crois et y a quelques soucis j'ai cru comprendre avec la partie membre, quoique sur la mienne, je ne pense pas que mettre un cache serait utile en admin.

Mais je fais pas mal d'include comme je le disais dans un autre topic et ca peux vite devenir complexe à s'y retrouver , puis si je fais une mise à jour dans quelques mois ce sera même plus la peine d'essayer :D

Y a moyen de mettre un système de cache avec PHPlib ?
J'ai été lire un peu de "doc" http://cyberzoide.developpez.com/php4/template/

je ne crois pas que la version ait changé donc y a surement pas de cache alors si je dois utiliser un moteur de template et y rajouter du cache "maison" autant tout faire en maison tu ne penses pas ?

Ou bien un petit système de template de ce style, qui est simple et efficace a ce que j'ai entendu. http://www.gagatemplate.com/index.html


Merci.
 
WRInaute discret
Je vais tout simplement mettre en ligne la version n°1 sans rien du tout de spéciale et je tacherais d'optimiser ma seconde version soit avec PHPlib soit Smarty, l'avantage de Smarty c'est qu'il est continuellement mis à jour et lorsque on passera à Php 6 il tournera encore ce qui ne sera plus le cas de phplib avec ces class obsolètes. C'est ce que j'ai entendu donc autant assurer son avenir non ?
 
WRInaute occasionnel
C'est un choix à faire c'est sûr. J'ai encore du mal à m'adapter à php5, alors php6 n'en parlons même pas ...

:mrgreen:
 
WRInaute discret
Je deterre ce topic que j'avais créer pour le continuer...

Bon j'ai pratiquement terminé de coder mon template engine personalisé :D

Maintenant que je suis en train de faire la refonte de mon site web et plus particulièrement le back-end, je me posais une question.
Quelle est la meilleure méthode à utiliser pour faire comme le back-end du forum phpBB nouvelle génération, je m'explique.
Il y a différents onglets et pour chaque onglet il y a un sous menu différent.

Ma question est quelle est la méthode la plus propre, rapide, moins couteuse en temps, requete, place(ko), temps de génération pour faire pareil.

Est-ce que je dois insérer le menu latéral gauche dans chaque fichier template ou bien je fais à la sauce phpBB avec un overall_header.tpl et logiquement un menu_lateral.tpl sauf que ce dernier ne sera pas identique pour chaque onglet.

J'ai quelque peu analysé le nouveau Olympus et il a beaucoup changé, leur moteur de template et totalement différent maintenant ce n'est plus des tpl mais des html ^_^ et je n'ai pas trouvé le fichier ou les fichiers qui contenait le menu. ( Suis surement trop fatigué ou que sais-je...)
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut