Problème classe

page 1 page 2
Répondre
eljam
eljam
Déconnecté
Voilà mon problème est expliqué sur le wall.
http://www.lephpfacile.com/wall/wall.php?id=2060
Rex
Rex
Déconnecté
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
Je ne comprend pas bien ton problème !

Tiens, j'vous crée un système de template en live (pas testé donc) :

  1. <?php
  2. <?php  
  3. class Template {  
  4. var $vars = array();  
  5. var $replace = array();  
  6. var $fileName = null;  
  7.  
  8. function Template($fileName) {  
  9. if (! file_exists($fileName)) die('Template inexistant');  
  10. $this->fileName = $fileName;  
  11. }  
  12.  
  13. function set($varName, $value) {  
  14. $this->vars[] = '{' . $varName . '}';  
  15. $this->replace[] = $value;  
  16. }  
  17.  
  18. function parse() {  
  19. return str_replace($this->vars, $this->replace, file_get_contents($this->fileName));  
  20. } 
  21.    
  22.    function display() { 
  23.       echo $this->parse(); 
  24.    }  
  25. }  
  26.  
  27. ?>
  28. ?> 
Rex
Rex
Déconnecté
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
Enfin, personnellement je ne vois pas l'intérêt de ce genre de système. Pourquoi ne pas mettre des "<?php echo ?>" à la place de "{variable}" ??

Tiens, voici un code que j'utilise :
  1. <?php
  2. require 'Laurence.class.php';  
  3.  
  4. $page = new Laurence('test.html');  
  5. $page->titre = 'Le titre';  
  6. $page->table = array(7,5,1,19,17,2,8);  
  7. $page->display();  
  8. ?> 


Et voici le contenu de "test.html" :
  1. <html>
  2. <head>
  3.    <title><?php echo $this->dataSource['titre']; ?></title>
  4. </head>
  5. <body>
  6. <h1><?php echo $this->dataSource['titre']; ?></h1>
  7. <table>
  8. <tbody>
  9. <?php $list_classe = array('paire'=>'impaire', 'impaire'=>'paire'); $this->dataSource['classe'] = 'impaire'; foreach( $this->dataSource['table'] as $this->dataSource['valeur']) { $this->dataSource['classe'] = $list_classe[$this->dataSource['classe']]; ?>
  10. <tr class="<?php echo $this->dataSource['classe']; ?>"><td><?php echo $this->dataSource['valeur']; ?></td></tr>
  11. <?php } ?>
  12. </tbody>
  13. </table>
  14. </body>
  15. </html> 
eljam
eljam
Déconnecté
En fait l'intérêt premier c de séparé le code du template. Ce que je pensais faire c'était avoir des variables entre {} et ensuite de faire correspondre tout le code d'une page à une variable pour gérer l'affichage de menu ou de block. Mais en fait j'ai trouvé une autre solution avec la classe qe j'ai.

Merci pour l'exemple.
Rex
Rex
Déconnecté
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
En fait l'intérêt premier c de séparé le code du template.

Je n'ai jamais pu comprendre pourquoi les gens faisaient ça. A part ralentir les pages, ça n'apporte rien ...
Rex
Rex
Déconnecté
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
HAAaaa ... siii ... je sais pourquoi !
En fait, les gens ont besoin de barrière sinon, ils font de la merde.

En gros, ils ont peur de mélanger le traitement de l'affichage, alors ils s'imposent une telle bêtise pour éviter les débordements !
keitarosan
keitarosan
Déconnecté
>> http://projectopensource.free.fr/index.php?m=2&m2=5&s=8 <<
rex est en forme en ce moment smiley
Rex
Rex
Déconnecté
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
Ui !

Non aux BBCodes et non aux templates idiots.

Vive l'autogénération !!!
rosema
rosema
Déconnecté
c 'est incroyable ce que je peux écrire comme conneries
[quote]Non aux BBCodes[quote]
La je te suis pas bien...
Rex
Rex
Déconnecté
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
C'est parce que tu n'as pas suivi certaines conversations (voir par exemple le sujet sur les expressions régulières).
mojorisin
mojorisin
Déconnecté
echo ’16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq’|dc
J'aime bien utiliser les templates personnelement.
La séparation du code et de l'affichage me plait surtout lors de travail en equipe ou un designer peut générer un template sansrisque pour le code.

Après dans la même lignée on peut dire : pouhaha les css et le xhtml vive le inline avec font,color,border etc...
smiley
Rex
Rex
Déconnecté
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
Pour moi, le designer n'a pas à écrire une seule ligne de code, donc "exit" les templates.
Le designer pond une page en HTML pur, avec des données en exemple et c'est l'ergonome qui exploite ces "exemples" pour écrire le code de présentation.

Exemple de code de présentation :
  1. <page titre="Accueil" cache="accueil" cachenav="actif">
  2. <menu />
  3. <cadre titre="News">
  4. <news />
  5. </cadre>
  6. </page> 


Ce code est ensuite "compilé" et donne un script PHP pur qui est ensuite placé sur le serveur.

Aucune machinerie "template" n'est utilisée et les temps de traitement sont incomparable ...
eljam
eljam
Déconnecté
Et ben chacun sa manière de voir rex. N'en dégoute pas les autres pour autant smiley. Tu diras a smarty que c'est pourri ce qu'ils font ^^
Rex
Rex
Déconnecté
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
Tu diras a smarty que c'est pourri ce qu'ils font ^^

On est assez nombreux à penser ça, en effet.
Smarty est le pire exemple du template débile. Ils ont litérallement réinventer une syntaxe. Avant, ça pouvait être bien, maintenant, c'est n'importe quoi.
Isaac
Isaac
Déconnecté
http://www.zmws.com
On peut aussi mettre <?=$txt ?> je crois.
page 1 page 2
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Php - Breizh Blog