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 :

Partager variables entre plusieurs sessions ?


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 123
    Points : 68
    Points
    68
    Par défaut Partager variables entre plusieurs sessions ?
    Bonjour

    Certaines informations sont communes à plusieurs sessions, et pour augmenter les perfs/économiser les ressources, j'aimerais donc que les différentes sessions en cours puissent accéder à ces données communes, plutôt que chaque utilisateur aille chercher les mêmes info dans MySQL.

    En cherchant dans Google, j'ai trouvé ces pistes:
    - serveur de cache style MemCacheD
    - Coder en objet: variables de classe
    - Variables (super)global

    Qu'en pensez-vous? Pouvez-vous m'en dire plus à un semi-newbie en PHP?

    Merci.

  2. #2
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    Moi j'suis plutôt curieux de savoir quelle genre d'infos peuvent être communes à plusieurs utilisateurs et nécessitent d'être partagée dans l'optique d'un gain de ressource...
    One minute was enough, Tyler said, a person had to work hard for it, but a minute of perfection was worth the effort. A moment was the most you could ever expect from perfection.

    -- Chuck Palahniuk, Fight Club, Chapter 3 --

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 123
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par Er3van Voir le message
    Moi j'suis plutôt curieux de savoir quelle genre d'infos peuvent être communes à plusieurs utilisateurs et nécessitent d'être partagée dans l'optique d'un gain de ressource...
    Données issues de MySQL. Le résultat actuel, c'est que les mêmes données sont présentes dans chacune des sessions, alors qu'une partie de ces données sont identiques.

  4. #4
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    Commune à TOUS les utilisateurs où uniquement communes à CERTAINS utilisateurs ?

    Car si elles sont communes à tous tu peux simplément t'en passer et presque le mettre "en dur".

    Après, le tableau des variables globales répond à ta problématique, savoir si c'est la meilleure option....
    One minute was enough, Tyler said, a person had to work hard for it, but a minute of perfection was worth the effort. A moment was the most you could ever expect from perfection.

    -- Chuck Palahniuk, Fight Club, Chapter 3 --

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 123
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par Er3van Voir le message
    Commune à TOUS les utilisateurs où uniquement communes à CERTAINS utilisateurs ?
    A tous. Le reste est spécfique à chaque utilisateur, donc logique que ça reste dans leur session.

    Citation Envoyé par Er3van Voir le message
    Car si elles sont communes à tous tu peux simplément t'en passer et presque le mettre "en dur".
    Cad? Les données viennent de MySQL. Exemple : listes qui doivent être personnalisées en fonction de l'utilisateur loggé.

    Citation Envoyé par Er3van Voir le message
    Après, le tableau des variables globales répond à ta problématique, savoir si c'est la meilleure option....
    Je n'ai pas utilisé. Quels sont les avantages/inconvénients?

    Merci.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Les variables globales ne sont pas une solution car elles ont un scope définie sur le processus en cours.
    Hors tu cherches à partager de la donnée sur plusieurs processus.

    Tu peux regarder les sémaphores
    http://fr2.php.net/manual/fr/intro.sem.php
    Sinon il y à shmop
    http://fr2.php.net/shmop

    Je n'ai jamais utilisée ces mod, j'ai toujours préféré ma base de données, ou un fichier, selon le cas, dans ces situations.

    bye

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 123
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par kaymak Voir le message
    Les variables globales ne sont pas une solution car elles ont un scope définie sur le processus en cours.
    OK, on laisse tomber alors.

    Citation Envoyé par kaymak Voir le message
    Tu peux regarder les sémaphores. Sinon il y à shmop
    Je vais regarder. Merci.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 123
    Points : 68
    Points
    68
    Par défaut
    Pour ceux que ça intéresse, la soluce que j'ai trouvée:

    1. Utiliser les sessions pour les trucs spécifiques à chaque utilisateur
    2. Utiliser un moteur de cache type APC pour les données communes à tous les utilisateurs

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Partager une variable entre plusieurs classes
    Par jasonpolakow dans le forum Windows Forms
    Réponses: 8
    Dernier message: 06/01/2011, 10h02
  2. Partage de variable entre les sessions
    Par zinia dans le forum Servlets/JSP
    Réponses: 20
    Dernier message: 21/07/2008, 17h20
  3. partage d'une variable entre plusieurs threads
    Par baedal dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 27/02/2008, 20h33
  4. Partager des variables entre plusieurs actions ds un controlleur
    Par gvdmoort dans le forum Ruby on Rails
    Réponses: 6
    Dernier message: 11/10/2007, 09h38
  5. Partage de variables entre plusieurs pages
    Par bud_gw dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 27/12/2005, 15h42

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