Variable unique accessible pour tous les internautes

Snoops_1
Invité n'ayant pas de compte PHPfrance

04 oct. 2011, 16:19

Bonjour tout le monde,

Comme le titre l'indique, je voudrais savoir s'il est possible de créer une variable accessible sur tout le site par tous les utilisateurs ?
En gros, je voudrais gérer un objet (initialisé par des données en BDD) et le partager avec tous les utilisateurs.
Je souhaiterais que lorsque l'un d'eux le modifie, cela l'impacte chez les autres aussi.

Merci pour votre réponse.
Dorian

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

04 oct. 2011, 16:38

salut,

utilise des données dans une tables (ou plusieurs) et a chaque affichage tu charge l'objet, s'il y a une modif par quelqu'un elle est répercutée partotu dès qu'il y a rechargement de page.

le principe reste le même avec un fichier qui contiendrais les données, ou même un objet sérialisé mais la je ne pense qu'il s'agisse d'une bonne idée étant donnée qu'il risque d'y avoir des accès concurrent ça va être plus la merde qu'autre chose.

tu peux très bien imaginer un objet qui va chercher les données dont il a besoin automatiquement a l'instanciation (donc à l'aide du constructeur) que cela soit dans un fichier ou une table d'un sgbdr).

en contexte web tu ne peux avoir d'info partager par plusieurs poste, d'ailleurs dans tous les cas il faut une architecture client - serveur :) la tu sera limité au rechargement des pages et validation des formulaires.

sans plus d'indication de ta part je ne peux pas être plus précis :)

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 360 Messages

04 oct. 2011, 16:48

Tout d'abord merci pour ta réponse, même si au final tu me dis que c'est pas possible :P

En fait, je suis sur un site marchand, et je veux que ma liste d'objets en vente (mais c'est plus que juste ma liste d'article) soit à jour à chaque fois qu'on charge la page ...
Le problème c'est que je ne souhaite pas faire des appels incessants à la BDD ...
Donc je trouvais que l'option d'un objet partagé (initialisé par le premier user, complété quand les informations nécessaire n'ont pas encore été remplies, et utilisé par tous) était la bonne. En gros, on fait appel à la BDD 1 fois pour le "select" de chaque info et pour chaque update.

Si je dois utiliser tout le temps la BDD, je trouve ça "lourd".

Peut-être connais tu une autre voie à suivre pour moi ...
Dites ce que je fais, ne faites pas ce que je dis ...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

04 oct. 2011, 21:33

non, le sgbd est fait pour cela.

Par contre il faut bien faire attention a ne pas décrémenter le nombre d'article avant validation de l'achat ! (sinon c'est le bordel :)

il est possible d'imaginer une une table de "réservation et lors de l'achat tu décrémente l'objet en cours, ceci afin de ne pas afficher un nombre qui n'est pas bon.

pour garder la chose cohérente il est possible de créer un ramasse miette qui nettoie cette table de temps (obligatoire pour éviter les soucis des paniers qui ne sont pas valider (donc pas d'achat).

tu peux aussi imaginer de ne pas le faire et de vérifier avant validation s'il y a assez de produit :)


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 360 Messages

05 oct. 2011, 12:09

Bon bah ok, je pense passer par la BDD alors ...
Du coup pour mon cas, je pensais passer par une simple variable d'état (par ex : 0 - Non disponible, 1 - Réservé, 2 - Disponible) car tous mes articles sont uniques.
Mais je trouve ca dommage, j'aimais bien mon idée de partage de variable :P
Merci encore pour m'avoir prêté ton oeil avisé :wink:
Bonne journée
Dites ce que je fais, ne faites pas ce que je dis ...

Eléphant du PHP | 360 Messages

05 oct. 2011, 12:10

Avis à un admin : Je n'ai pas ouvert mon post avec mon user, je ne peux donc pas le passer à [Résolu], pourriez vous le faire à ma place ? Merci
Dites ce que je fais, ne faites pas ce que je dis ...