Bonjour,
Je me pose une question pour un de mes futurs projets perso.
En effet, j'ai prévu d'enregistrer un objet en session afin de pouvoir restaurer le même objet de page en page.
Au départ, j'avais trouvé une idée sur le net : dé/sérialiser l'objet en session à chaque fin et début de requête.
Exemple :
Mais vu la taille de mon objet, je trouve ça un peu... énorme à stocker. Je ne connais pas la mémoire utilisée pour la session mais j'imagine qu'elle n'est pas illimitée. J'ai donc modifié le code ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public static function saveCurrentObject(Object $objet){ $_SESSION['objet'] = serialize($objet); } public static function restoreCurrentObject(){ return isset($_SESSION['objet']) ? unserialize($_SESSION['objet']) : null; } public static function clearCurrentObject(){ if(isset($_SESSION['objet'])) unset($_SESSION['objet']); }
En gros, je garde uniquement les éléments servant à construire l'objet et le reconstruit à chaque requête après.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public static function saveCurrentObject(Object $objet){ $_SESSION['objet'] = $objet->getId(); } public static function restoreCurrentObject(){ return isset($_SESSION['objet']) ? new Objet($_SESSION['objet']) : null; } public static function clearCurrentObject(){ if(isset($_SESSION['objet'])) unset($_SESSION['objet']); }
Je n'utilise pas les exemples ci-dessus tels quels, ils servent uniquement... d'exemples pour illustrer mon raisonnement.
Laquelle des solutions vous parait la moins gourmande en ressources ? Laquelle est la plus rapide ?
Et surtout, y a-t-il une autre solution que je n'aurais pas trouvé sur le net et à laquelle je n'aurais pas pensé ? (Sachant que je suis en PHP 5.2.17)
Partager