IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Template et systeme de cache


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut Template et systeme de cache
    Bonjour,

    Je suis en train de regarder pour créer un petit système de cache associe une classe template de ma création.

    Si je comprend bien, dans le plus simple des cas, on marche toujours de la façon :
    SI LA PAGE EST EN CACHE
    ->CHARGEMENT DE LA PAGE EN CACHE
    SINON
    ->CRÉATION DE LA PAGE ET CRÉATION DU CACHE
    Le soucis, qui je suis sur est un un peu bateau, c'est que mon site, comme la plupart des sites, utilise beaucoup de parties dynamiques. C'est a dire que j'ai plusieurs blocs par exemple qui utilisent les informations de login de l'utilisateur connecte, on imaginerai pas qu'il voit s'afficher les identifiants de la personne qui a mis a jour le cache ...

    Du coup, la ou je ne voyais la nécessiter que de caler le rendu HTML dans un fichier et de l'appeler si necessaire, se pose une question un peu plus complexe, a savoir l'attribution d'élément spécifiques après chargement.

    Avez vous une idée de la meilleure façon de gérer ça ?

    D'avance merci.
    Spécialité : Développement WEB
    Indispensables : Doc PHP ~ Doc MySQL ~ w3schools ~ validateurs W3C ~ Google Adwords ~ PHP-Tester


  2. #2
    FoxLeRenard
    Invité(e)
    Par défaut
    Houla !! des templates ! quelle horreur

    Tu vois , a moins d'avoir un forum comme ici, vraiment les "machines" sont si performentes, et la génération d'une page html si simple en fait ! alors oui pour créer un cache sur un serveur, mais construire cette usine a gaz que sont les templates, moi ça me décourage rien que d'y penser.

    Et pour l'avoir fait moulte-fois, reprendre un PHP aprés 10 mois pour y modifier quelque chose c'est jouable !
    Mais dans un systéme template Pfffffffffffff...

    Regardes j'avais créé une dizaine de MOD pour PHPBB il y a cinq ans.
    a la demande d'un amis, j'ais du replonger dedans, pour une améliorartion !
    J'ais fini par tout réécrire.

    Alors tu vois moi je préféres préserver mon "cache-mémoire" dans mon cerveaux, que celui du serveur !

  3. #3
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut
    Bonjour,

    Je suis plus ou moins oblige d'utiliser les templates. D'abord, parce que je trouve ça très soulant de faire les designs (c'est pas mon métier en plus ^^), et pouvoir filer un truc qu'un infographiste va comprendre du 1er coup, ca n'a pas de prix Ensuite, je suis un peu manique et je pense sincèrement que mon code html n'a pas a se mélanger avec mon code php, j'ai aps envie de faire de la mayonnaise, chacun chez soit, et tout ira bien ...

    A vrai dire, pour le probleme que tu exposes au niveau complexités, c'est bien pour ça que je développe ma classe moi-même, pour avoir UNIQUEMENT les quelques fonctions qui m'intéressent, et éviter d'utiliser au maximum des parties de code que je ne maitrise pas.

    Ceci dit pour mon soucis, je suis en phase de trouver une solution, en fait je "re-templatise" une page en cache, ce qui me permet diviser pas presque 10 les remplacements et operations d'inclusions effectues lors du chargement d'une page.

    Ceci dit, si vous avez des idées particulières (cote script car mutualise), je suis toujours preneur.
    Spécialité : Développement WEB
    Indispensables : Doc PHP ~ Doc MySQL ~ w3schools ~ validateurs W3C ~ Google Adwords ~ PHP-Tester


  4. #4
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par keaton7 Voir le message
    Bonjour,
    Je suis plus ou moins oblige d'utiliser les templates.
    Bonsoir,
    je comprends ta démarche, mais franchement, tu l'as compris je ne défends pas ton point de vue !

    Tu vois les includes, avec du PHP permetent cette séparation html/php

    Mais j'ais étoilé ta question car j'espéres que ce sera l'occasion d'avoir enfin un débat sur ce sujet qui a tant de Topos, et qui mérite d' y penser !
    Tu sais a propos de look des html (template) exécutes 80% des templates et tu ne sera pas déçu, surtout s'il est multilingue ! t'auras pas un mot voir 1/10em des images ...

  5. #5
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut
    Tu sais a propos de look des html (template) exécutes 80% des templates et tu ne sera pas déçu, surtout s'il est multilingue ! t'auras pas un mot voir 1/10em des images ...
    J'ai pas compris ...
    Spécialité : Développement WEB
    Indispensables : Doc PHP ~ Doc MySQL ~ w3schools ~ validateurs W3C ~ Google Adwords ~ PHP-Tester


  6. #6
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par keaton7 Voir le message
    J'ai pas compris ...
    Oui je veux dire l'ossature finale du html (template)
    a bien tout pour s'afficher, mais partout des variables viennent remplir ce html final !
    Alors si tu sépare le template de la logique généartrice php ... tu auras une drole de page !

  7. #7
    Membre éclairé Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Points : 845
    Points
    845
    Par défaut
    Citation Envoyé par keaton7 Voir le message
    Du coup, la ou je ne voyais la nécessiter que de caler le rendu HTML dans un fichier et de l'appeler si necessaire, se pose une question un peu plus complexe, a savoir l'attribution d'élément spécifiques après chargement.
    Y en a qui mettent par exemple l'identifiant du visiteur dans un cookie. Lors du chargement de la page, un javascript place cet identifiant au bon endroit dans la page pour permettre ainsi une "personnalisation" à posteriori.
    C'est jouable quand il n'y a que très peu de données personnalisées (et qu'on accepte le fait de se reposer sur js).

    Sinon, coté serveur, tu peux mettre en cache juste des fragments de la page complète. Uniquement les fragments qui sont communs à tout le monde.
    Les parties personnalisées doivent être ajoutées d'une manière ou d'une autre pour un rendu final.

    Une autre technique un peu similaire consiste à remplacer certaines parties de la page mise en cache. Ces parties sont des "place holder".
    Par exemple sur ce forum, tu peux voir "Bienvenue, keaton7" en haut à droite.
    Le cache pourrait contenir en fait "Bienvenue, {{name}}" et {{name}} serait remplacé par la bonne valeur juste avant d'envoyer le tout au client.

  8. #8
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut
    C'est jouable quand il n'y a que très peu de données personnalisées (et qu'on accepte le fait de se reposer sur js).
    Pour des raisons évidentes d'accessibilité, je ne veux pas de me contraindre au Javascript pour des éléments absolument nécessaires. J'ai choisi de ne pas faire un site full-ajax pour ces raisons, ça m'embêterai de m'y contraindre pour une histoire de cache ...

    tu peux mettre en cache juste des fragments de la page complète. Uniquement les fragments qui sont communs à tout le monde.
    Une autre technique un peu similaire consiste à remplacer certaines parties de la page mise en cache.
    J'ai plutôt penche pour un mix des 2 solutions a priori. A savoir une page en cache avec des éléments template dynamiques pas remplaces (contrairement aux éléments communs qui le sont tous), et je repasse un coup de template dessus lors du chargement. Résultat, les nombre de traitements est considérablement réduit.

    Alors si tu sépare le template de la logique généartrice php ... tu auras une drole de page !
    Comme tu le dis, la page de template, c'est un squelette, mais plus précisément, un modèle de mise en forme. Et afficher un modèle de mise en forme sans données, ça n'a de toute façon aucun sens
    Spécialité : Développement WEB
    Indispensables : Doc PHP ~ Doc MySQL ~ w3schools ~ validateurs W3C ~ Google Adwords ~ PHP-Tester


Discussions similaires

  1. [phpBB] Système de cache phpbb2
    Par McGyver59280 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 17/03/2011, 10h53
  2. Classe Template et fonction virtuelle cachée
    Par benbarate dans le forum C++
    Réponses: 5
    Dernier message: 14/05/2010, 09h09
  3. [webapp][cache]systeme de cache ds scope application
    Par Le Marlou dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 25/01/2008, 16h57
  4. [POO] systeme de cache
    Par jeff_! dans le forum Langage
    Réponses: 2
    Dernier message: 08/02/2006, 16h12
  5. [Librairies] Quel système de cache utiliser pour un forum?
    Par Cyrius dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 16/10/2005, 11h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo