2010-03-08 6 views
2

Je me demandais quel est le meilleur moyen pour stocker et récupérer des valeurs de session en PHP. Je construis un framework PHP avec une structure MVC. Maintenant, j'ai une classe de registre avec un objet important.Bonne pratique pour stocker et récupérer des valeurs de session en PHP

J'ai une classe pour la session, avec certaines fonctions définies concernant la session. Maintenant, je me demandais si c'est une bonne pratique d'utiliser simplement

$_SESSION['something'] 

partout dans votre code. Ou devrais-je utiliser set et get methods dans la classe d'objet session. Si je le fais, il ressemblerait à quelque chose comme

$session->something = 4 
$myalue = $session->something 

Je sais que ce n'est pas une grosse affaire, mais je me demandais quelle est la meilleure pratique pour une telle chose dans une bonne architecture.

Merci!

Répondre

4

J'ai tendance à me ranger du côté d'une classe d'objets de session principalement parce qu'elle me donne un proxy entre la date de session actuelle et ce que les classes essayent de définir.

Par exemple:

Quand j'ai un site en direct, et un utilisateur dit qu'ils ont des problèmes avec X ou Y, il me est très facile pour insérer un objet de session avec des données qui le fait ressembler à I Je suis cet utilisateur, sans avoir besoin de me connecter en tant que tel utilisateur, ou d'effacer l'une de mes propres données de session.

L'autre avantage est que je n'ai pas à m'inquiéter de la façon dont je nomme mes variables. Ceci est particulièrement pratique si je dois m'assurer que mon application ne marche pas sur les orteils d'une autre application. Je peux simplement changer mes noms de variables dans le stockage de session, tout en gardant le même nom quand je fais face à mon application.

1

Si vous construisez une classe wrapper autour de quelque chose, vous devez utiliser cette classe wrapper. Sinon, quel est le point?

La chose que vous voulez généralement photographier est une couche d'abstraction. Si vous décidez de modifier les détails d'implémentation de la sauvegarde des données de session (comme le stockage des données dans $_SESSION['Prefix']['something'], ou basculez le tout dans un backend de base de données), vous pouvez simplement modifier les détails de la classe de session, le reste de votre code fonctionne sans modifications.

Questions connexes