2010-08-12 46 views
2

Je travaille avec des cours en PHP. Quand j'écris un cours, je pense toujours "Cet objet est fondamentalement unique, il ne va pas durer au-delà du chargement de la page." Par conséquent, toute la logique dans mes classes se construit essentiellement, fait quelques changements d'état, donne un retour et meurt. Les crevettes de saumure. Pour cette raison, j'ai pris l'habitude d'utiliser des exceptions pour lancer presque tous les problèmes, car je ne serai pas en mesure d'avoir l'utilisateur interagir avec l'objet en cas de problème. Au lieu de cela, l'utilisateur obtient des commentaires sur la page à propos de ce qui s'est passé, puis ils soumettent de nouveau le formulaire ou quoi que ce soit. L'objet est sur le point de mourir dans quelques millisecondes de toute façon, et je ne serai pas en mesure d'obtenir plus d'entrée pour gérer l'erreur. Il me semble que si je programmais dans un environnement avec des objets persistants, je ferais probablement plus de rapports d'avertissement et d'erreur et de manipulation dans les objets, avant que ma méthode ne se termine avec une exception. Si un objet traînait encore avec un état d'erreur ou d'avertissement, je pouvais obtenir plus d'informations de l'utilisateur et continuer. Donc mes objets sembleraient et se comporteraient différemment.Comment la persistance change-t-elle l'architecture de l'objet?

S'il vous plaît noter que ce que je demande n'est pas "Comment les objets se comportent différemment en PHP d'autres langues?" mais plutôt "Lorsque vous écrivez un objet en PHP (ou d'autres environnements non persistants), en quoi ces objets diffèrent-ils de quand ils peuvent persister?"

+0

Question intéressante. (Je me demande quelles sont les ramifications au-delà de la disposition des ressources proprement pour aider à la collecte des ordures, etc.) Je serais tenté de faire du wiki communautaire. –

+0

Vous pouvez également rendre l'objet persistant en PHP, je supprimerais simplement toute mention à PHP, c'est juste sans rapport avec le problème rencontré –

+0

@Vinko Je pense qu'il est courant d'utiliser des objets non-persistants en PHP ... quels autres environnements ont objets non persistants de toute façon? – user151841

Répondre

0

Je pense qu'un aspect clé concernerait la gestion des ressources, avec les handles de fichiers et la mémoire étant des suspects évidents. (En termes de PHP, je suppose que vous avez désactivé les grands tableaux et les objets qui ne sont plus nécessaires.)

Cela dit, je pense qu'un bon programmeur coderait de cette façon de toute façon - laissant les poignées de fichiers ouvertes , etc. est une pratique assez médiocre même si vous savez que l'exécution prendra soin de ces choses pour vous.