Bonjour tout le monde.
Je souhaiterais stocker les sessions symfony en BDD.
Pour cela, je me suis renseigné sur 2 tutos :
- http://www.lampjunkie.com/2008/05/st...with-doctrine/
- http://www.designdisclosure.com/2009...ssion-storage/
Pourquoi vouloir cela ? Pour avoir accès à la session de l'utilisateur courant depuis une barre d'outil firefox et ie... Et je pourrais aussi par exemple faire des stats sur les personnes connectés etc etc...
Voici donc mon fichier config/databases.yml
La description de la table session dans mon fichier config/doctrine/schema.yml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 all: doctrine: class: sfDoctrineDatabase param: dsn: mysql:host=localhost;dbname=mabase username: username password: password persistent: true
Ce qui me génère la table SQL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Session: columns: id: { type: string(32), notnull: true, primary: true, fixed: true } content: { type: string(4000), notnull: true } time: { type: integer(4), notnull: true }
Pour finir, voici mon fichier apps/monapp/config/factories.yml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 id char(32) PRIMARY KEY content text time int(11)
Maintenant, voici le problème. Lorsque je vais sur le site, une session est efefctivement créée en BDD, dansla table session.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 all: user: class: myUser param: timeout: 864000 # 10 jours (10*24*60*60) storage: class: sfPDOSessionStorage param: database: doctrine db_table: session db_id_col: id db_data_col: content db_time_col: time # suite du fichier...
Elle a la forme :
Maintenant, voici ce que je ne comprends pas. Lorsque je me connecte sur le site (getUser()->setAuthenticated(true)), une nouvelle ligne de session est créée. Lorsque je me déconnecte, une nouvelle ligne est créée etc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 id = 0448d8e9cb5b686f2e9e6e454688f62a content = symfony/user/sfUser/lastRequest|i:1283283389;symfo... time = 1283283389
J'ai vu que d'autres personnes avaient eu un problème similaire mais je n'ai pas trouvé de solution à mon problème.
Pouvez-vous m'aider ?
Merci d'avance.
Partager