2010-08-13 10 views
0

pensait à créer une classe unique appelée 'Request' pour gérer et nettoyer les variables POST et GET, mais étant nouveau pour le modèle singleton, je ne suis pas sûr de savoir comment l'implémenter. Idéalement, j'aimerais avoir 2 fonctions post ($ name, $ clean) et obtenir ($ name, $ clean) - $ clean étant un booléen pour déterminer s'il faut couper/échapper la valeurComment créer une classe singleton PHP pour gérer les variables de demande?

+2

Pourquoi la requête doit-elle être un singleton? – Gordon

+0

duplication possible de [Création du motif de conception Singleton en PHP5] (http://stackoverflow.com/questions/203336/creating-the-singleton-design-pattern-in-php5) – Gordon

+1

Alors que vous êtes nouveau sur le modèle Singleton , vous pouvez lire cet article: http://misko.hevery.com/2008/08/17/singletons-are-pathological-liars/ –

Répondre

0

Je ne suis pas sûr pourquoi vous pensez que c'est un bon candidat pour un singleton - j'ai pensé qu'un simple cours statique aurait beaucoup plus de sens. (Incidemment, je présume que vous utilisez le filter functions?)

Alors qu'une simplification grossière, les singleton sont bons pour limiter/contrôler l'accès à une ressource finie ce qui n'est pas vraiment le cas dans ce cas.

+0

Une classe statique n'est pas trop intelligente non plus. Vous auriez encore du mal à le railler. IMO, la raison d'utiliser un objet Request est de découpler la demande réelle de l'environnement, y compris la portée globale. – Gordon

+0

Pour être honnête, il ne doit pas être singleton - im essayant toujours de comprendre quelles situations sont plus adaptées à singleton en fait. En ce qui concerne l'assainissement, je pensais seulement à trim et strip_tags je ne savais même pas à propos de ces fonctions de filtre - elles semblent prometteuses! – htmlr

+0

@Gordon - exactement, je veux découpler de l'environnement/portée globale ie un objet standard par lequel je pourrais accéder aux vars sachant qu'ils avaient été nettoyés sans avoir à utiliser à plusieurs reprises trim/strip_tags qui est ce que je fais actuellement sur chaque formulaire ou requête string var Comment créeriez-vous cette classe? – htmlr

1

Je pense que l'utilisation d'un singleton serait formidable même si pour la pratique. Juste parce que quelqu'un ne pense pas que c'est la bonne approche ne le fait pas mal. En utilisant et en mettant en œuvre des idées, peu importe leur taille, vous apprendrez et approfondirez vos connaissances sur ces implémentations. Vous saurez bientôt si cela fonctionne pour votre situation particulière ou non. Ensuite, vous n'avez pas à prendre les opinions des autres.

Cela étant dit, je dis aller pour cela. Je peux voir pourquoi tu le voudrais. La pensée étant, "Je veux que tout soit nettoyé pour les injections (etc.) et ainsi je peux m'assurer que cela se produira à chaque entrée." Permettez-moi de jeter un peu de lumière. Pourquoi ne pas implémenter une seule méthode en utilisant $ _REQUEST qui va traiter à la fois $ _GET et $ _POST? Bien que cela puisse être une approche simple, il vous aidera à démarrer. Amusez-vous et rappelez-vous, il n'y a rien de "faux" ou "incorrect" quand il s'agit d'apprendre. Je pense que c'est l'approche que StackOverflow essaye de faire. Nous sommes ici pour apprendre à faire quelque chose, ne pas être jugés sur notre mise en œuvre. Alors amuse toi bien!

+0

Bon point c'est la seule façon dont je vais vraiment comprendre avec de bons vieux essais et erreurs, merci! – htmlr