begin process at 2012 05 31 03:47:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

Méthodologie de codage ...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Méthodologie de codage ...

mercredi 11 avril 2007 à 00:48:17 | Méthodologie de codage ...

LocalStone

    Salut à tous !
Alors voilà, j'ai un petit problème de méthodologie ... Je m'explique :
Imaginons que l'on ait une classe Cookie, qui modélise - comme son nom l'indique - les cookies, avec par exemple des methodes comme recupererVariable(), enregistrerVariable(variable), etc. ... Le truc, c'est qu'à côté de ça, je dois pouvoir gérer l'ensemble de ces cookies, avec des opérations comme par exemple recupererCookieParSonId(id), detruireCookie(cookie) etc ...
Alors comment dois-je faire ? En fait, j'ai pensé à deux solutions :
1) Créer une classe GestionCookie qui suit le pattern singleton, ce qui assure qu'il n'y aura qu'une seule instance de cette classe et donc aucun problème d'interférence entre les cookies ;
2) Créer un ensemble de méthodes et de membres statiques à l'interieur de ma classe Cookie qui permettent de gérer tout les cookies, et une nouvelle fois, aucun problème d'interférence, l'unicité étant dûe à l'existence unique de l'objet porteur de classe.
Au final, les 2 valent à peut prêt la même chose ... Sauf que la première est plus lourdre mais plus jolie a implémenter, et la seconde est plus aisée et permet de tout rassembler mais c'est quand même laid dans la manière de coder ...
So ... Any Idea ?
Localstone
mercredi 11 avril 2007 à 22:00:14 | Re : Méthodologie de codage ...

FhX

Le singleton est pratique lorsqu'il n'y a qu'une seule configuration possible pour ton objet.
Exemple pour une base de donnée par exemple. Tu ne spécifies les infos de connection à ta base qu'une fois et que tu utilises tout au long de ta page.

Si tu fais un singleton sur un objet "cookie", je me demande comment se présente ton objet.
Au mieux, j'aurais fais :

class Cookie {
 private $name;
 
 public function __construct($cookiename) {
  if ( isset($_COOKIE[$cookiename]) )
       $this->name = $cookiename;
  else
      throw new exception ....
 }
 
 public function Recupere() {
  return $_COOKIE[$this->name];
 }
 public function Enregistrer($var) {
  $_COOKIE[$this->name] = $var;
 }
 
}

Et tu joues comme ceci :

$cookieUser = new Cookie('user');
$cookieSession = new Cookie('session');
$cookieSession->Enregistrer( session_id() );
$cookieUser->Enregistrer( serialize( array('lol', 'mhh') ) );

echo unserialize($cookieUser->Recupere());

Ou en passage par paramètre à un autre objet :

public function MethodFoo( Cookie $cookie ) {
    $cookie->Enregistrer($this->ma_propriete);
}

Je trouve que ca marche aussi bien :)

Le statissisme n'est la que pour permettre d'utiliser les propriétés de la classe elle-même et non de/des instances. Utile dans le cas où on s'en fou de ce qui rentre et de ce qui va à priori sortir.

Hors toi, ce qui rentre, c'est le nom du cookie qui change tout le temps.
Tu te vois faire :
 Cookie::Recuperer('nom_du_cookie');
 Cookie::Enregistrer('nom_du_cookie', $var);

Nan, y'a une erreur de programmation objet évidente ici :)

Au mieux, tu peux effectuer un multiton, mais l'interêt est limité.
Je m'en serais tenu à ce que j'ai fais :)

Sauf que, de toute facon, je ne vois pas pourquoi creer un objet pour les cookies dans l'immédiat ! C'est comme si je créais un objet pour les GET, POST, SESSION... voir pourquoi pour le type STRING, FLOAT et INT aussi ? ;) (ca pourrait être marrant ^^)




Cette discussion est classée dans : problème, cookies, classe, cookie, méthodologie


Répondre à ce message

Sujets en rapport avec ce message

Problème de cookies [ par iomega ] Bonjour a tousJ'ai deux serveurs les 2 avec eseayphp 1.6 sur le 1er quand je me connecte le cookies dure toute la session jusqu'a la fermeture du brow Problème : Vérifier si client utilise cookies, [ par shadow125 ] Bonsoir,J'ai cherché sur le site une manière de "sécuriser" des pages utilisant des cookies, de manière à ce que qu'elles ne puissent être vues par de Problème avec les cookies! [ par Fran6net ] Salut! J'ai créer un espace membres. Pour celui-ci, j'utilise des cookies! Hors je propose aussi aux visteurs de se déconnecter! Mais sa déconnecte se Prob cookie [ par zzzzzz ] Yeppetite question de passageje créé mes cookies de la facon suivante :setcookie("diabl_n",$username,time()+2*3600*24*350,"");setcookie("diabl_p",$pa Cookies [ par Gagou_c ] Bonjour, j'ai un probleme avec un cookie.Je veux créer un cookie pour récupérer le dernier nom d'utilisateur qui a accéder à l'intranet sur un poste. Problème de cookies... [ par Tilix ] Salut ! Alors voilà j'ai un petit problème avec mes cookies ! $expire = time() + 365 * 24 * 3600 * 10; setcookie("pseudo",$_POST['pseudo'],$expire); Problème de variables [ par WaNoU ThE EpSyLoN ] Bonjours à tous et à toutes,Comment faire pour qu'une variable définie dans une méthode d'une classe soit utilisable dans une autre méthode de cette m Script php cookies [ par babaslow ] Bonjour, J'aimerais savoir si vous connaissez un script php qui permet d'identifier un visiteur via un cookie et d'incrémenter un compteur pour ses cookie de session - besoin de méthode [ par satellite34 ] bonjour,voila, j'ai un soucis, je doit creer et utiliser un cookie de session sur mon site, j'ai regardé des sources sur phpCS mais impossible d'en fa Problème de cookies avec ie [ par Sipadan ] Bonjour,Je voudrais créer un cookies qui expire  la fermeture de la page.Je fait juste ça : setcookie('cipdlc','1',time(<font color="#ff0000"


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales