Avec PHP et MySQL, je travaille sur un site de type login utilisateur. Voici mon plan jusqu'à présent. L'utilisateur se connecte avec un e-mail/mot de passe J'ai ensuite mis quelques choses en session (UserID, photoURL, userName, latitude, longitude, sexe) Ce sont les éléments de base qui seront sauvegardés en session et éventuellement APC/Memcache quand un l'utilisateur est "connecté". J'ai ma gestion de session et de gestion de cache enveloppée dans Classes de sorte qu'un objet utilisateur obtient les données sur chaque chargement de page en créant un objet de session et de cache, puis en important ces objets dans un objet utilisateur principal. Maintenant, je suis confus, je l'ai toujours fait de cette façon ou similaire, mais je sais que certaines personnes sérialisent les objets, puis les enregistrer en session ou en cache, puis récupérer l'objet au chargement de la page. Serait-il préférable de le faire de cette façon?Devrais-je créer de nouveaux objets à chaque chargement de page ou passer la page à la page en PHP?
Devrais-je créer de nouveaux objets à chaque chargement de page ou passer la page à la page en PHP?
Répondre
Je pense que vous n'avez pas à y penser. Je travaille en tant que développeur php dans mon entreprise où nous avons créé une page Web avec des centaines d'objets créés chaque fois qu'une page est chargée et qui sert 50 à 200 personnes à la fois et 50ms pour générer la page. Donc, si vous n'avez vraiment pas besoin de la vitesse supplémentaire obtenue par la sérialisation des objets, vous n'avez pas à vous en soucier.
Je ne pense pas que la manière tout-en-session est la meilleure façon, c'est seulement une autre façon. Si vous stockez des objets sérialisés dans la session, puis désérialisez-les, cela sera certainement plus rapide, mais vous devez stocker une grande quantité de données. Personnellement, je préfère la régénération de l'objet à chaque chargement de page et j'utilise la sérialisation de la session uniquement lorsque la création de l'objet est très lente.
Ok merci, je ne savais pas si elle était plus ou moins vite, je pensais sérialisation et un serais une lourde opperation – JasonDavis
Cela ressemble à une optimisation prématurée. Historiquement, c'était certainement une bonne idée de stocker des objets en tant qu'entités sérialisées - dès que vous appelez session_start et récupérez une session existante, le moteur devrait restaurer les objets - potentiellement avant le traitement des définitions de classe. Cependant, maintenant, la désérialisation des objets de session peut être différée. Tant que votre objet utilisateur n'est pas horriblement compliqué (cela ne semble pas être le cas), il est probable que faire autre chose que de stocker l'objet dans la session est excessif (Si votre classe d'utilisateur est très complexe, vous pourriez penser à propos de la scinder - assurez-vous que votre authentificateur et votre autorisateur sont des entités distinctes).
Notez que l'objet de session sérialise et désérialise tout son contenu de manière transparente - encore une fois vous pouvez voir un certain avantage en faisant bon usage des méthodes __sleep et __wakeup.
HTH
C.
- 1. Comment passer la page ou l'objet de page maître à la méthode de page AJAX
- 2. Passer l'adresse à Google Maps au chargement de la page
- 3. Passer la valeur à la deuxième page (créer & passer var)
- 4. Comment passer JSON à la page Web sur le chargement de la page?
- 5. passer à la section page par URL
- 6. Écran de chargement de page en PHP
- 7. Passer une variable à la page new.html.rb
- 8. appel module UrlAuthorization personnalisé avec chaque chargement de la page
- 9. PHP créant une nouvelle session pour chaque chargement de page
- 10. asp.net page "page en cours de chargement"
- 11. annuler la page de chargement en javascript
- 12. Ajouter une page single.php à wordpress ou si condition pour la page principale ou la page de détails de poste
- 13. PHP servant une page à la fois
- 14. Silverlight 3 Application métier: Comment passer une chaîne de requête de la page principale à la page À propos de?
- 15. Les pylônes vérifient le cookie à chaque chargement de page
- 16. Créer une limite d'utilisation de la page en PHP?
- 17. membre ThreadStatic valeur lose sur chaque chargement de la page
- 18. ASP.NET DATAGRID Pas de passer à la page suivante
- 19. Y compris la page JSP à l'intérieur de chaque boucle
- 20. Comment incrémenter un compteur à chaque chargement de page (en PHP)?
- 21. Maître accès à la propriété page de la page Contenu
- 22. Chargement de ScriptManager une seule fois à partir de la page principale ou de la page Contenu
- 23. Validateur de plage ASP.net passer à la page suivante
- 24. réinitialiser à chaque page, Latex
- 25. php exécuter la page
- 26. chargement de la page de javascript
- 27. passer ou lire cookie .net en php page
- 28. passer le paramètre de la page asp.net à l'application flexible
- 29. La table d'iphone ne se met pas à jour à chaque chargement de page
- 30. Dites-swf de vérifier quelle page son chargement sur un interrupteur à la bonne page
Je suis nouveau à l'aide d'objets, donc je vraiment don Vous ne savez rien sur les performances, alors dans votre dernière phrase dites-vous que sérialiser un objet et le passer de page en page est plus rapide? – JasonDavis
Je pense juste que la sérialisation est plus rapide. mais si vous n'avez que quelques objets simples (ce qui semble être le cas), vous pouvez simplement créer vos objets à chaque fois. Comme je l'ai dit, il vaut mieux ne pas sérialiser. Sauf si vous utilisez des objets très complexes qui prennent comme 100-200ms à créer. – Gabriel