Utilisateur, session avec une 3eme class

Rechercher

Utilisateur, session avec une 3eme class

Par Vini  -  4 reponses  -  Le 13/05/2009 21:45  -  Editer  - 

Bonsoir !

Emacs tu m'avais donnée une très bonne astuce pour les sessions qui consistais à faire du découpage !

exemple:

  1. class User
  2. class Session
  3. class Panier

voiçi l'exemple que tu m'avais fais :

<?php
      class SessionStorage
      {
          // Classe de gestion de la session
      }
      class ShoppingCart
      {
          // Classe pour le panier d'achat
      }
      class User
      {
        private $sessionStorage = null;
        private $shoppingCart = null;
      public function setCulture($culture = 'en')
      {
          // Ici tu contrôle la culture et tu charges ton fichier de traduction
          // par exemple
      }
 }
      $user = new User(new SessionStorage());
      $user->setCulture('fr');
      $user->setShoppingCart(new ShoppingCart());
      $user->addItemToShoppingCart($monItem);
      ?>

j'ai reflechi mais je ne vois pas comme utiliser l'objet session dans les autres classes !

quand je fais j'instancie l'objet User je lui passe en paramètre l'objet SessionStorage, jusque la ça va !

mais je ne vois pas comment Le panier peux bénéficier de l'objet SessionStorage ?

quand tu écrits la methode setShoppingCart(new ShoppingCart)

tu fais juste un setter ? et ensuite tu gère la session à l'interieur de l'objet User ?

la j'ai du mal et pourtant je suis sur que je me prend la tete pour rien comme tu me la déjà demontrer !

sachant que l'objet User detiens l'objet session et qu'il est le centre de la session comment et quel est le mieux pour l'utilisé avec d'autre objets ?

 

 

 

 

 

 

Réponses apportées à cette discussion

Par Emacs  -  Le 13/05/2009 23:59  -  Haut de page  - 

Hello,

Ton objet SessionStorage est conservé dans ton objet User et y reste. Si tu veux bénéficier des infos de la session de l'utilisateur dans un autre objet, il te suffit simplement de setter l'objet User à ton objet.

++

Hugo.

 
Par Vini  -  Le 14/05/2009 19:20  -  Haut de page  - 

ok merci pour ton aide ! moi je pensais qu'il fallait setter l'objet session dans l'objet tiers ! j'etais à coté de la plaque

class ShoppingCart
{
  private $user;
  public function setUser(User $user)
  {
    $this->user = $user;
  }
  public function getUser()
  {
    return $this->user;
  }
}

 

 
Par Vini  -  Le 18/07/2009 14:10  -  Haut de page  - 

Salut !

Tu me conseilles quoi pour setter ? la méthode précédente ou bien celle ci :

 

public function addProduct(Product $product)
{
    ShoppingCart::addItemToCart($this):
}

 

 
Par Vini  -  Le 18/07/2009 14:21  -  Haut de page  - 

en faite je m'embrouille avec mes méthodes lol

mais tu m'a donner un exemple du genre :

 

$user = new User(new Session());
et
$user->setShoppingCart(new ShoppingCart());
$user->addItemToShoppingCart($monitem);

 

mais et donc pour faire passer un User dans la class ShoppinCart je fais un setter de user dans cette dernière comme ceçi :

 

public function setUser(User $user)
{
    $this->user = $user;
}

et dans la class User je fais

public function setShoppingCart(ShoppingCart $shoppingCart)
{
    $shoppingCart->setUser($this)
}

 

J'ai juste besoin d'une confirmation ou bien d'une autre solution si la mienne n'est pas bonne !

Merci Vincent

 

 

 

 

 

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |