Par exemple:Les objets domain peuvent-ils appeler d'autres mappeurs de données? (Zend Framework)
J'ai un utilisateur qui a 10 Widgets. Parallèlement à cela, j'ai un gestionnaire qui gère 5 de ces widgets.
Je veux récupérer les Widgets de l'utilisateur géré par un gestionnaire spécifié. J'ai donc créé une fonction dans mes WidgetMapper appelés fetchUsersManagedWidgets ($ USERID, ManagerID $) qui interroge le db pour les 5 widgets et cartes un tableau d'objets Widget.
Je sais que des objets de domaine ne sont pas censés être au courant de leurs cartographes, mais puis-je créer une fonction dans le modèle de l'utilisateur qui appelle une fonction de la WidgetMapper?
par exemple. Ou est-ce une voie à sens unique, et les objets de domaine ne devraient jamais appeler des fonctions de mappeur?
Tu as raison j'ai une table UserWidgets avec n: m relation. Ce qui m'amène à une question de suivi. Si userwidgets n'a pas son propre modèle/mappeur, quel mappeur dois-je utiliser pour enregistrer la relation avec la base de données? Je suis tenté de dire qu'une fonction dans le UserMapper appelée saveUserWidgets ($ user, $ widgets) est-elle correcte? – Craig
@craig: Oui, je l'ajouter à la UserMapper en premier lieu. A partir de widgetMapper pov je serais une fonction addUser ($ widget, $ user). Les deux peuvent être faits, les deux sont corrects, les deux peuvent être utiles à avoir. Je resterais avec les saveUserWidgets (ou peut-être les rendre même atomar, comme addWidget ($ User, $ widget) et removeWidget (...)) en fonction de ce que vous faites. Chaque fonction est autorisée ici aussi longtemps que vous savez ce qu'ils font;) Il n'y a pas de "fonctions interdites" ou de "fonctions incontournables" pour le mappeur. – Fge