Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Session

Posted by axias on 12/08/2010 14:12

Bonjour,

Je voulais savoir comment stocker en session unniquement mes objets métiers. Avec jSession, on doit avoir une table associée. Existe-t-il une classe en Jelix pour manipuler simplement les sessions, du genre :

Session::write('key', 'ma valeur');

En fait, je pose cette question car je ne veux pas utiliser le tableau $_SESSION directement dans mon code.

Merci.

  [Opened] Session

Reply #1 Posted by laurentj on 12/08/2010 18:05

Bonjour,

Avec jSession, on doit avoir une table associée

non. jSession est juste là pour démarrer/arreter la session, et eventuellement activer le stockage de la session dans une table d'une base de donnée. En aucun cas c'est une obligation d'avoir une table en base de donnée.

Et sinon, pour mettre des objets ou tout autre valeur en session, il faut utiliser $_SESSION "comme d'hab".

je ne veux pas utiliser le tableau $_SESSION directement dans mon code

Pourquoi donc ?

  [Opened] Re: Session

Reply #2 Posted by axias on 12/08/2010 18:23

Merci de la réponse.

C'est pas très objet à mon gout, mais ca n'engage que moi. Mais je me suis fait une classe SessionService qui me permet de faire cela. Elle est activé au load de Jelix. J'y accède via des méthodes statiques set, get, delete qui me permettent de ne pas utiliser le tableau >$_SESSION directement dans mes actions, seule la classe SessionService le fait. C'est un gage de sécurité.

  [Opened] Session

Reply #3 Posted by laurentj on 12/09/2010 10:37

C'est pas très objet à mon gout, mais ca n'engage que moi.

Personnellement, je trouve que ça n'apporte rien du tout. Au contraire, ça fait une classe de plus à parser, de la mémoire en plus d'occupée, et une API en plus à "apprendre". Bref, je trouve que ça alourdi plus qu'autre chose.

Si il y a une volonté de "java-ifier" PHP, autant faire directement du Java...

je suis plutôt pour un certain pragmatisme : ne pas réinventer la roue quand ce n'est pas nécessaire. En l'occurrence, pour les sessions, ça ne me semble pas nécessaire.

C'est un gage de sécurité.

Je ne vois pas en quoi c'est un gage de sécurité. En tout cas, j'aimerai connaître tes arguments à ce sujet. Mais en attendant, je dirais que c'est le contraire, ça peut fragiliser ton code comme par exemple, dans des cas particuliers comme celui-ci : si tu fais des choses spécifique en plus dans ta classe de session, et que tu utilises des modules tiers qui utilisent directement $_SESSION (c'est le cas de certains composants et modules jelix), pour ces modules là, tes trucs spécifiques sur la session ne seront pas exécutés pour ces modules, donc peut être selon aura des incidences néfastes sur le fonctionnement de l'appli.

 
Page
  1. Session