[Moteur de Template] Comment le faire démarer

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [Moteur de Template] Comment le faire démarer

par katagoto » 10 juin 2008, 15:16

Juste un petit-up pour dire que j'ai beaucoup modifié mon message précdent, prière de le relire...

par katagoto » 09 juin 2008, 07:25

Je vais faire mon système de compilation mais voilà un problème vient à moi...je vais mettre toutes les tâches lourdes (variables, requêtes SQL, etc.) au début de mon script compilé, mais, pour retranscrire une boucle il faut que je fasse des foreach...comment faire pour ne pas à avoir à effextuer deux boucles ?
Une autre question : Comment faire pour compresser la page avant de l'envoier (comme dans Smarty je crois) pour économiser la bande passante ?

Réponse à ma deuxième question :
Par l'ajout de ce code en haut de chaque page :
<?php
ob_start("ob_gzhandler");
?>
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Je viens d'avoir une idée de template :
<?php
// Ici, toutes les actions
function traite($buffer)
{
  glob $tableau_varianles; // Ici tout ce qui a été attribué pour le template
  // remplace tout ce qui concerne le langage du template
  return $html;
}

ob_start("traite");
// La partie html pourrait-être inclus...
?>
<html>
<body>
<p>C'est ici que se trouve le code</p>
</body>
</html>
<?php
ob_end_flush();
?> 
Qu'en pensez vous ???

par katagoto » 06 juin 2008, 12:27

Bah c'est un langage adressé aux graphistes :lol:
De toutes façon tu es "obligé" d'utilisé un système de cache avec un système de templates, faut bien regagner les ressources que tu as perdu...oui pour le compilage ^^

par savageman » 06 juin 2008, 10:47

Pour répondre à Savageman, si tu as un système avec de petites expressions régulières, ce ne sera pas trop gourmand certes, mais il y aura toujours cette histoire de langage extra-terrestre sorti de nul part et que personne ne connaît …
Tu peux même avoir des expressions régulières super lourdes, c'est pas le problème, vu que c'est recompilé qu'à chaque changement... :) Du reste, c'est aussi efficace que PHP seul. ;)

Par contre +200 pour le langage extra-teresstre ! :)

par Hywan » 06 juin 2008, 08:55

Qui te dit que tu es obligé d'écrire tes balises avec PHP ? PHP peut s'immiscer entre :
<img src="<?php echo HTML_ROOT; ?>Media/Image/…" />
ou encore
<ul>
  <li><?php echo …; ?></li>
</ul>
Pour répondre à Savageman, si tu as un système avec de petites expressions régulières, ce ne sera pas trop gourmand certes, mais il y aura toujours cette histoire de langage extra-terrestre sorti de nul part et que personne ne connaît …

par katagoto » 06 juin 2008, 08:35

Alors, j'ai téléchargé phptemplate, bon c'est méchant...
Les seuls choses que mon template contiendra seront : les boucles, les conditions, et l'affichage des variable, donc ce sera extrêment léger...je veux pas avoir à apprendre une lma fonctionnement usine à gaz...
Le problème de ne pas utiliser de template c'est que les designeur viennent embêter les codeurs pour qu'il modifient le html présent dans leurs echo alors qu'ils auraient pût le faire tout seul...Après, je dois faire un système proposant plusieurs langues et plusieurs organisations...Ensuite les graphistes ont du mal avec PHP...

par savageman » 06 juin 2008, 08:29

A part qu'un truc un minimum optimisé n'effectue pas d'expression régulière à chauqe chargement o_o
Talus'TPL compile les pages en PHP une bonne fois pour toute et c'est la version compilée qui est utilisée. Le moteur s'occupe "seulement" de vérifier qu'une version plus récente n'existe pas et, le cas échéant, la compile pour l'utiliser.
Enfin, le système peut s'occuper d'une mise en cache éventuelle (mais j'ai pas c'est pas assez flexible je trouve, quoi que pour des trucs qui changent pas souvent ça le fait :) ).

par Victor BRITO » 06 juin 2008, 01:55

Le seul inconvénient de l'approche XML/XSLT est le fait de devoir connaître XSLT. Mais, vu ce qu'on en tire, c'est un inconvénient passager. ;)

par Hywan » 05 juin 2008, 23:13

Hey :),

Comme le dit bien Berzemus, un moteur de template qui se base sur des expressions régulières souffrent de beaucoup de chose.
Premièrement, on utilisera des expressions régulières, et pas des plus simples. J'avais fait un moteur de template dynamique (qui pouvait communiquer avec PHP) et crois moi, les expressions régulières étaient joyeuses. Tout ça a un coup, c'est évident.
Deuxièmement, l'utilisateur va devoir apprendre un pseudo-langage bâtard qui se situe maladroitement entre XML et PHP. Les programmeurs ne s'y retrouvent pas, les designers n'ont plus. Et je ne parle pas des variables qui doivent être pré-définies, avec documentation et convention de nommage ultra strict, nom de variables réservés, etc.
Enfin, à la base, PHP était fait pour ça non ? Pour un langage de template performant. Pourquoi vouloir changer ?

Tu as un autre choix ensuite, celui de XML et XSLT. Je ne l'ai jamais mis en place sur un serveur pour du temps réel, mais c'est très rapide. Beaucoup plus que si on utilisait des moteurs de template fait maison. De plus, XML a l'avantage de très bien se compresser et de très bien s'exporter. En effet, tu peux avoir une feuille XSLT pour transformer ton XML vers de l'HTML, mais également vers du PDF (via XSL-FO), ou du ManPage, etc. J'avais même fait ça pour une documentation Eclipse (eh oui …).
Dans l'absolu, le couple XML/XSLT est le plus intéressant. Si tu veux choisir PHP, ne prend que PHP et oublie l'invention d'un pseudo-langage bâtard :).

par Berzemus » 05 juin 2008, 22:25

Plus rapide que phptemplate, je doute.

Il part du constat que php est en fait déjà un langage de template à la base, et que donc il convient parfaitement pour l'utiliser en tant que tel.

Mes maigres expériences sur SF me permettent de dire que lui aussi utilise le php comme langage de template.

Ce qui est 100% sur, c'est qu'utiliser php comme langage de template sera ce qu'il y a de plus rapide. Un moteur de template avec des expression régulières doit quand même souffrir question temps de calcul..

par katagoto » 05 juin 2008, 17:20

En fait j'essay de comprendre comment en faire un optimisé donc j'ai commencé par Talus' TPL, je pense que son système de preg est performant et je vais m'en inspirer... Si vous en avez de ce niveau ou légèrement plus hardue je prend, je ne connais pas phptemplate, est-il bien ? complexe ou dûr (niveau code) ? rapide ou lent ? Oui la liste est longue il doit bien y en avoir 200 sur la SF...

par Berzemus » 05 juin 2008, 17:09

smarty ? phptemplate ?

Le choix est vaste..

par katagoto » 05 juin 2008, 17:00

Tu ne t'ais jamais servit d'un moteur de template ? personne ne t'as forcé ? Les autres aussi peuvent répondrent à mes questions...

par Victor BRITO » 05 juin 2008, 15:07

Personnellement, je n'ai pas eu l'occasion d'utiliser un moteur de template, quel qu'il soit. Mais, l'approche XSLT mérite qu'on s'y intéresse, pour ce que j'ai dit précédemment. ;)

par katagoto » 05 juin 2008, 13:08

Merci de ta réponse, mais tu ne donne pas ton opignon personnelle, qui serait interessante, pour moi en tout cas...