Bonjour tout le monde.

Je souhaiterais stocker les sessions symfony en BDD.

Pour cela, je me suis renseigné sur 2 tutos :


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
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
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
Session:
  columns:
    id:       { type: string(32), notnull: true, primary: true, fixed: true }
    content:  { type: string(4000), notnull: true }
    time:     { type: integer(4), notnull: true }
Ce qui me génère la table SQL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
id	    char(32) PRIMARY KEY			 	 	 	 	 	 	
content	    text		 	 	 				
time	    int(11)
Pour finir, voici mon fichier apps/monapp/config/factories.yml
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...
Maintenant, voici le problème. Lorsque je vais sur le site, une session est efefctivement créée en BDD, dansla table session.

Elle a la forme :
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
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...

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.