Örneğin:Etki alanı nesneleri diğer veri eşleyicilerini arayabilir mi? (Zend Framework)
10 Widget içeren bir Kullanıcı var. Bununla birlikte bu widget'ların 5'ini yöneten bir yöneticim var.
Belirtilen bir Yönetici tarafından yönetilen Kullanıcı Widget'larını almak istiyorum. Bu yüzden WidgetMapper adlı bir fonksiyon yarattım ve bu 5 widget için db'yi sorgulayan ve bir dizi Widget nesnesi olan fetchUsersManagedWidgets ($ userId, $ managerId).
Etki alanı nesnelerini, eşleştiricilerinden haberdar etmemeleri gerektiğini biliyorum, ancak Kullanıcı modelinde WidgetMapper işlevini çağıran bir işlev oluşturabilir miyim?
örn.
class Application_Model_User {
public function getWidgetsManagedBy($manager) {
$widgetMapper = new Application_Model_WidgetMapper;
return $widgetMapper->fetchUsersManagedWidgets($this->getId(), $manager->getId());
}
}
Veya bu tek yönlü bir cadde midir ve etki alanı nesneleri asla mapper işlevlerini çağırmamalıdır?
Haklısınız n: m ilişkisi olan bir UserWidgets tablosum var. Bu beni takip eden bir soruya getiriyor. Eğer userwidgets kendi model/mapper'ına sahip değilse, ilişkiyi db'ye kaydetmek için hangi mapper'ı kullanırım? UserMapper işlevinde saveUserWidgets ($ user, $ widgets) denilen bir işlev bu doğru olduğunu söylemek cazip mi? – Craig
@craig: Evet, öncelikle UserMapper'a ekleyebilirim. WidgetMapper pov 'dan bir addUser fonksiyonu ($ widget, $ user) olurdum. Her ikisi de yapılabilir, her ikisi de doğru, her ikisi de yararlı olabilir. Ne yaptığınıza bağlı olarak saveUserWidgets'la (veya addwidget ($ User, $ widget) ve removeWidget (...) gibi) atom bile oluşturabilirim. Ne yaptığını bildiğiniz sürece her işleve izin verilir;) Eşleştirici için "yasak" veya "sahip olması gereken işlevler" yoktur. – Fge