Accueil > Forum > > > > Méthodologie de codage ...
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"
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|