Templates/PostgreSQL
Hors ligneCarroteman Le 12/08/2007 à 15:27 Profil de Carroteman Configuration de Carroteman

Bonjours j'aurais plusieurs questions :

-A quoi sert un moteur de Templates ?
-Comment faire pour en créer un? Avec quel language?

-Sur quel SGBD tourne le site?
-A quoi ressemble les requêtes PostgreSQL ? Ou les apprendre ?

Merci de vos réponses, j'ai pensé à toutes ces questions hier soir et vu que j'ai été trés satisfait des réponses de mon dernier sujet et des tutos du site, je me suis dit que j'allais vous les demandé
Hors ligneAnthony Le 12/08/2007 à 15:40 Profil de Anthony Configuration de Anthony

Admin
Salut

Carroteman a écrit :
A quoi sert un moteur de Templates ?


Principalement à séparer le XHTML du code PHP, c'est à dire que tes fichiers PHP ne se composent plus que de PHP, tu n'as plus de XHTML disséminé un peu partout, ce qui rend le code plus propre, mais l'intérêt ne s'arrête pas là : tu peux également bénéficier d'un système de cache (bien que le moteur de templates ne soit pas obligatoire pour faire un système de cache) ce qui te permet d'éviter de faire des traitements coûteux. Sans cache, un moteur de templates ralentit les performances, contrairement à ce qui peut se passer avec un système de cache bien conçu.

Carroteman a écrit :
Comment faire pour en créer un? Avec quel language?


Si tu codes ton site en PHP, tu le fais en PHP, sinon en ASP, ASP .net, etc.

Carroteman a écrit :
Sur quel SGBD tourne le site?


MySQL

Carroteman a écrit :
A quoi ressemble les requêtes PostgreSQL ? Ou les apprendre ?


PostgreSQL étant un SGBD respectant la norme SQL (tout comme MySQL) les requêtes sont la plupart du temps compatibles, attention juste aux requêtes ayant des choses peu communes, comme la clause LIMIT (qui est parfois remplacée par TOP dans certains SGBDR) et j'en oublie surement
--

Hors ligneCarroteman Le 12/08/2007 à 16:02 Profil de Carroteman Configuration de Carroteman

Merci pour ces réponses !

Toutefois j'en ai d'autres^^

Comment créer un moteur de tamplates ? Il séparera le xHTML et php tout seul ou devrais-je le faire ? Comment créer un système de cache ?

J'ai entendu que PostgreSQL possédé plus de fonctionnalité que Mysql comme des tests d'intégrités qui vérifient si la BDD est cohérentes, toutefois PostgreSQL est plus lent niveau réponses mais Mysql à un certain moment n'est plus capable de gérer des BDD trop grosses et trop complexe,
Est-ce vrai à l'heure actuel ? car les articles que j'ai lu pour regrouper mes infos datent...
Hors ligneAnthony Le 12/08/2007 à 16:28 Profil de Anthony Configuration de Anthony

Admin
Pour le moteur de templates, une version proche de celui que j'ai codé pour le site existe ici : Moteur de templates avec système de cache

Sinon pour ce qui est de la capacité de MySQL à gérer de grosses bases de données, je ne pense pas que tu arriveras à le saturer avec n'importe quelle base ;) le forum hardware.fr est sur une base de données MySQL par exemple ;)

Pour ce qui est des tests d'intégrité tu n'en auras à mon avis pas besoin pour un site classique. Les transactions sont gérées par MySQL et puis les clés étrangères vont faire l'objet d'une amélioration (ça par contre c'est pratique les clés étrangères).
--

Hors ligneCarroteman Le 12/08/2007 à 16:53 Profil de Carroteman Configuration de Carroteman

merci beaucoup pour la source mais je ne comprend pas tous :S :
c'est quoi un fichier template ?
c'est quoi un fichier précompilé ?
C'est quoi un "block" : "Tableau qui stockera le nom des blocs et leur "masque" "

le cache ce sont des fichiers ?
Il servent a ne pas réactualisé plusieurs fois une page quand on la redemande si je sais bien?

Comment utiliser le moteur de template créer ?
Quand on a un moteur de templates a dispo, nous pouvons coder sur une même page du HTML et PHP et c'est le moteur de template qui se charge de séparer les codes ? Si oui ou récupérer ces codes ?


ouff sa fait beaucoup beaucoup de question désolé^^ mais jusqua hier je ne savais pas qu'existé les moteurs de templates :S
Hors ligneAnthony Le 12/08/2007 à 17:01 Profil de Anthony Configuration de Anthony

Admin
Un fichier template c'est ton fichier qui contient le code XHTML ainsi que certaines instructions en langage "template" qui seront modifiées par le moteur de templates en PHP et au final ça donnera un fichier XHTML qui sera renvoyé au navigateur.

Le fichier précompilé si je puis dire, c'est une sorte de fichier "entre le template et le code PHP" ce n'est ni un fichier PHP, ni un fichier template.

Un bloc, c'est un contenu XHTML qui sera répété plusieurs fois (avec des valeurs différentes). Par exemple ceci est un bloc :

<!--BLOC-->
<tr>
     <td>Nom : {NOM}</td>
</tr>
<!--/BLOC-->

le contenu sera répété plusieurs fois, avec un nom différent. ça pourra donner ça :

<tr>
     <td>Nom : Anthony</td>
</tr>
<tr>
     <td>Nom : Martin</td>
</tr>
<tr>
     <td>Nom : Pierrot</td>
</tr>

Ensuite le cache oui c'est un fichier, qui en fait permet au moteur de templates de ne pas refaire les traitements qui ont été faits une fois (et qui sont peu amenés à changer). Donc en gros ça va sauvegarder (le contenu du bloc par exemple) dans un fichier "précompilé" et le moteur de templates aura juste à balancer le contenu du fichier précompilé, sans générer tout, d'où gain de performances.

Pour ce qui est d'utiliser le moteur de templates que je t'ai montré, il y a un exemple en bas de la source, c'est pas compliqué. Sinon avec le moteur de templates c'est toi qui sépare le PHP du XHTML, vu que tu crées un fichier php et un fichier tpl qui sera ton fichier template.
--

Hors ligneCarroteman Le 12/08/2007 à 17:52 Profil de Carroteman Configuration de Carroteman

Anthony a écrit :
Un fichier template c'est ton fichier qui contient le code XHTML ainsi que certaines instructions en langage "template" qui seront modifiées par le moteur de templates en PHP et au final ça donnera un fichier XHTML qui sera renvoyé au navigateur.


le language "template" c'est la POO du moteur de template ?
Si j'ai bien compris en suite le langage templates se changera en PHP (le php qui aurait du être sur la page xHTML c'est sa ?) et au final sa donnera du XHTML car Apache renvoit que du XHTML c'est bien sa ? si j'ai bien tout suivi^^

le fichier .tpl c'est le fichier qui contient le XHTML et le "template" c'est bien sa ? et le .php c'est celui qui contient les instructions en php qui aurait du être avec le XHTML ?

Ici le pseudo de la personne à citer a écrit :
Un bloc, c'est un contenu XHTML qui sera répété plusieurs fois (avec des valeurs différentes).


Si un contenu XHTML ne se répéte pas plusieurs fois avec des valeurs différentes ce n'est plus un block c'est bien sa ?

je monopolise un peu ton temps :S mais je pose toute ces questions pour vraiment bien tout comprendre aux fonctionnement du système
Hors ligneAnthony Le 12/08/2007 à 18:34 Profil de Anthony Configuration de Anthony

Admin
Carroteman a écrit :
le language "template" c'est la POO du moteur de template ?
Si j'ai bien compris en suite le langage templates se changera en PHP (le php qui aurait du être sur la page xHTML c'est sa ?) et au final sa donnera du XHTML car Apache renvoit que du XHTML c'est bien sa ? si j'ai bien tout suivi^^


POO ça veut dire programmation orientée objet ;) ça n'a rien à voir avec le langage "template". Par langage "template" j'entends ceci : {VARIABLE} ou encore les blocs comme je te l'ai montré plus haut, y'a une certaine syntaxe dépendant du moteur de template (moi j'ai choisi cette syntaxe là par pur choix personnel).

Carroteman a écrit :
le fichier .tpl c'est le fichier qui contient le XHTML et le "template" c'est bien sa ?


Oui

Carroteman a écrit :
et le .php c'est celui qui contient les instructions en php qui aurait du être avec le XHTML ?


On peut dire ça comme ça oui.

Carroteman a écrit :
Si un contenu XHTML ne se répéte pas plusieurs fois avec des valeurs différentes ce n'est plus un block c'est bien sa ?


Oui et non, personnellement dans mon moteur j'utilise les blocs pour délimiter aussi certaines portions de code XHTML, ce qui fait qu'on peut les supprimer en fonction de conditions. Donc on appelle ça comme on veut, mais le principe de base d'un bloc c'est de se répéter
--

Hors ligneCarroteman Le 12/08/2007 à 19:05 Profil de Carroteman Configuration de Carroteman

Anthony a écrit :
POO ça veut dire programmation orientée objet ;) ça n'a rien à voir avec le langage "template". Par langage "template" j'entends ceci : {VARIABLE} ou encore les blocs comme je te l'ai montré plus haut, y'a une certaine syntaxe dépendant du moteur de template (moi j'ai choisi cette syntaxe là par pur choix personnel).


{VARIABLE} ===> les variables ?
les blocks sont bien du langage XHTML ?

script_template a écrit :
  //template(nom du fichier,repertoire contenant le cache,
          //savoir si on doit cacher tout le template, si du contenu
          //variable est présent il faut mettre ca a true pour
          //optimiser le système de cache)
          //Attention, si on met la variable $cacher à TRUE, elle
          //aura priorité sur le reste, donc le chargement sera fait
          //à partir du cache sans transformation.


Je comprend pas bien là :S les fichiers caches se sitent bien sur notre ordi ? et je croyait que les templates étaient les fichiers qui contiennent le XHTML et le "template" (j'ai pas trop compris le "template"^^)

dans le constructeur en paramètre il y a ceci : $rep_cache = './cache/'
Alors pourquoi dans le constructeur faire ceci : $this->cache_rep     = rtrim($rep_cache,'/').'/';  parce que si je ne me trompe pas $rep_cache = './cache/' = rtrim($rep_cache,'/').'/' non ?
Hors ligneAnthony Le 12/08/2007 à 19:29 Profil de Anthony Configuration de Anthony

Admin
J'ai mis {VARIABLE} c'est un exemple, j'aurais pu mettre {TRUC} et ça via le moteur de template tu fais

$template->assign('TRUC', 'valeur'); et dans ton fichier final (qui sera renvoyé au navigateur) ça ne sera plus "{TRUC}" mais "valeur"

Les fichiers cache se situent sur le serveur (PHP est un langage côté serveur comme indiqué dans le cours de PHP).

Ensuite pourquoi avoir fait cette ligne de code ? c'est au cas où tu mets ton répertoire de la forme :

./cache

bah il faut rajouter un / pour que le reste du script fonctionne, donc si tu mets ./cache/ j'enlève le dernier / puis je le rajoute, sinon je l'ajoute.
--

Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels