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 :

Utiliser un système de cache en PHP


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut Utiliser un système de cache en PHP
    Bonjour à tous !

    Je développe actuellement un site en php avec une interface d'administration et une base mysql.

    Je souhaite donner la possibilité de changer certains paramètres du site tels que son titre, le fait qu'il soit ouvert ou non à partir de l'interface d'administration.

    Cela requiert que l'utilisateur charge ces paramètres à chaque chargements d'une page, ce qui entraine une requète sql de plus.

    J'ai à peu près 5 requêtes sql par pages, croyez vous qu'il soit utile de faire un système de cache ? si oui, quel genre ?
    J'ai aussi pensé à stocker ces informations une bonne fois pour toutes dans la session . Croyez vous que ce soit une bonne idée ?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    489
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 489
    Points : 388
    Points
    388
    Par défaut
    sans hesitation pour le systeme de cache : oui !

    sur la majorité des pages avec des requetes sql, des traitements un peu lourds, tu peux facilement diviser ton temps de reponse par 10.. Meme un cache de 15 ou 20 mn suffit.. et permet de garder un site relativement dynamique..

    Perso, j'utilise smarty, et j'apprecie.. simple, efficace.. et tres bonne gestion du cache

    pour le stockage en session, tout depend .. des infos que tu as a passer..

    Sur un site ou les pages sont accessibles a tous mais avec des fonctionnalites differentes selon que tu es loggué ou pas, je stocke tout mon objet "User", serializé, dans la session, et ca passe tres bien..

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Merci de ta réponse,

    Je vais voir pour le système de cache, Le problème pour smarty c'est que j'utilise déja le moteur de templates de phpBB, j'ai peur que ça alourdisse plus qu'autre choses le code.

    J'ai pas trop compris lorsque tu as parlé d'objet "User" serializé.
    A quoi te sert-il de créer un objet user ?
    Et que veut dire serializé ?

    excuse moi pour ces questions, je ne suis pas très expérimenté en php

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    489
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 489
    Points : 388
    Points
    388
    Par défaut
    ah la je ne sais pas, systeme de template phpbb + smarty.. (encore qu'il me semble que phpbb est un derivé de smarty.. sans le cache.. il utilise aussi des fichiers .tpl, si je me souviens bien)

    Pour la session, c'est un site en POO (objet), donc quand un utilisateur se loggue, je stocke tout l'objet dans la session.. et je peux acceder a ses infos sur chaque page, sans rappeller la base.. (si je ne stockais que son identifiant, il faudrait que j'aille refaire une requete sur chaque page.. donc lourd)

    pour le serialize, quand tu stocke un objet ou une array dans une session ou que tu veux le passer en parametre, c'est une obligation, sinon tu ne recois rien d'intelligible.. mais c'est un detail, ca..
    http://fr.php.net/serialize

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Encore une petite question, lorsque tu passes l'objet user dans le cache ou dans la session et que tu ne vérifie pas directement dans la base de donnée la conformité des identifiants tu n'as pas peur que la sécurité de ton site soit compromise ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    489
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 489
    Points : 388
    Points
    388
    Par défaut
    bah quoi que tu stocke dans ta session, l'utilisateur negligent peut voir son compte utilisé par d'autres.. Mais a ma connaissance, c'est pas plus dangereux que de stocker un identifiant de session.. au contraire..

    http://phpsec.org/projects/guide/fr/4.html

    mais la securité est un vaste domaine.. meme les htaccess ne sont pas des protections sures..

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/05/2014, 09h06
  2. [Système] utilisation de la fonction system en PHP
    Par zazou19 dans le forum Langage
    Réponses: 6
    Dernier message: 05/08/2008, 00h59
  3. [Système] Utilisation de BIGINT(20) de MySQL à PHP
    Par metfan dans le forum Langage
    Réponses: 4
    Dernier message: 23/10/2007, 21h44
  4. [VTemplate] Comment utiliser le système de cache ?
    Par xhark dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 28/10/2006, 23h37

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