Ben ilk defa Doctrine2 ile çalışıyorum, ama ben bu soru, belirli bir ORM bağımlı olmayacak kadar genel olduğunu düşünüyorum.
Should the entities in a Data Mapper pattern be aware - and use - Mapper strong>?
Ben birkaç özel örnekler var, ama hepsi aynı genel soruya indirgenebilir gibi görünüyor.
Ben harici bir kaynaktan veri ile uğraşıyorum varsa - örneğin bir User
çok Messages
- ve dış kaynak sadece (bir RSS beslemesi gibi) son birkaç varlıkları sağlar, nasıl Bu Mapper farkında, ya da toplama yoluyla 'arananlar' (yapmak için verimsiz bir şey gibi görünüyor) sürece $user->addMessage($message)
çiftleri kontrol edebilirsiniz.
Tabii bir denetleyicisi veya İşlem Komut kullanıcıya mesaj eklemeden önce çiftleri için kontrol edebilir - ama bu çok doğru görünmüyor, ve kod çoğaltılması yol açacak.
Ben büyük bir koleksiyonunuz varsa - yine User
ile çok Messages
- nasıl User
varlık aslında bir Mapper çağrı vekalet olmadan sınırlayıcı ve koleksiyon için pagination sağlayabilir ?
Yine, Kontrolör veya idareye kullanıyor olursa olsun İşlem Yazı veya Messages
sayımı, tarih aralığı, ya da diğer faktörler tarafından sınırlı User
'nin bir koleksiyon almak için doğrudan Eşleyicisi'ni kullanabilirsiniz - ama çok kod çoğaltılması yol açacak.
Is the answer using Repositories and making the Entity aware of them? (En azından Doctrine2 için, ve benzer ne olursa olsun kavram diğer ORMs tarafından kullanılır.) Bu noktada varlık hala nispeten Mapper ayrılmış edilir.