|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre chevronné
![]() Développeur Web Inscription : mars 2011 Messages : 399 ![]() |
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 : Code :
Code :
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)
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery. Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels. Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc... |
||||
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 338 ![]() |
ça pourrait t’intéresser si tu ne l'as pas déjà lu
http://www.devshed.com/c/a/PHP/The-S...ns-in-PHP-5/2/ edit: avec le lien php.net c'est mieux http://php.net/manual/fr/oop4.magic-functions.php
__________________
Stay in Bed .. Save Energy |
|
|
00
|
|
|
#3 |
|
Membre chevronné
![]() Développeur Web Inscription : mars 2011 Messages : 399 ![]() |
Ah ! Oui effectivement, j'avais lu ça.
Le problème, c'est la récupération. Car je peux avoir plusieurs instances du même objets sur une page et je ne sais pas trop comment le gérer avec les méthodes magiques __sleep() et __wakeup() Et apparemment, la page que tu donnes s'arrête avant cette explication Si tu as d'autres exemples mieux expliqués, je suis preneur !
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery. Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels. Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc... |
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 338 ![]() |
http://www.devshed.com/c/a/PHP/The-S...ns-in-PHP-5/3/
oui exactement du coup je pense que c'est bien la solution la plus approprié
__________________
Stay in Bed .. Save Energy |
|
|
00
|
|
|
#5 |
|
Membre chevronné
![]() Développeur Web Inscription : mars 2011 Messages : 399 ![]() |
Le lien du manuel explique bien ce que ça fait et comment l'utiliser.
Au final, ça enregistre l'objet sérialisé dans un fichier... ça revient au même que ce que je fais. J'ai juste réinventé la roue ?
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery. Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels. Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc... |
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 338 ![]() |
je préféré l'exemple de mon dernier lien
sinon oui c'est ce que tu fais donc en gros moi : implementation du sleep/wakeup et ensuite session_register() et session_unregister() pr les passer en session.
__________________
Stay in Bed .. Save Energy |
|
|
00
|
|
|
#7 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Citation:
Tu pourrais peut être gagner à définir une logique de persistance découplée, ce qui te permettrait de choisir au runtime quelle stratégie adopter en fonction des objets à sérialiser (DB, Memcached, Redis, $_SESSION ou autre). Juste une question: Code :
public static function saveCurrentObject(Object $objet){
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#8 | ||
|
Membre chevronné
![]() Développeur Web Inscription : mars 2011 Messages : 399 ![]() |
Citation:
Ils servent principalement à "nettoyer" l'objet ou à activer des méthodes avant de "l'éteindre" et de le "rallumer". Or, je ne pense pas en avoir besoin (pour l'instant) dans le cas présent. Par ailleurs, session_register est obsolète et déconseillée... http://php.net/manual/fr/function.session-register.php Effectivement, mais je pensais que ces fichiers avaient une limite de taille. Peut-être pas si j'en crois la doc. De toute manière, je n'ai pas accès au PHP.ini sur mon hébergement, donc ça aurait été limité de ce côté là Mais ça m'a permit de découvrir http://fr2.php.net/manual/fr/functio...ve-handler.php qui permet de changer pas mal de choses sur la gestion des fichiers de session ![]() Citation:
J'ai écrit cet exemple rapidement et de tête. Personnellement, il ne me gène pas plus que ça.
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery. Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels. Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc... |
||
|
00
|
|
|
#9 | ||||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Citation:
Citation:
Juste un conseil pour l'optimisation: quel que soit la performance de ton algo, il ira moins vite en règle générale que les fonctions natives de PHP, par exemple, une manipulation de tableau avec des array_merge, array_combine, array_intersect et leurs petits copains va toujours plus vite qu'une boucle pour traiter ledit tableau. Citation:
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||||
|
00
|
|
|
#10 |
|
Membre chevronné
![]() Développeur Web Inscription : mars 2011 Messages : 399 ![]() |
Haha, ok, je suis pas le seul à utiliser assez intensivement les sessions
Je ne savais pas qu'on pouvait changer autant de chose dans un .htaccess. Je ne suis pas sûr de la syntaxe. C'est bien : ? (et pour les intéressés qui liront, cette page indique quels sont les constantes définies pour savoir quelles propriétés sont changeables et dans quelle endroit) En gros, comme pour l'instant je n'utilise quasiment que des fonctions de base de PHP (unserialize/serialize, mise en session, etc...) ça n'influerai pas. Effectivement, le "current" est de trop, surtout que je pourrais avoir plusieurs instances du même objet à "sauvegarder". C'est pas trop logique comme terme mais l'algo est acceptable.
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery. Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels. Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc... |
|
00
|
|
|
#11 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Oui c'est cette syntaxe, par exemple:
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
10
|
Copyright © 2000-2012 - www.developpez.com