Bir 'E-posta' sınıf modelinde ait veya görüntülemek mi?

4 Cevap php

Ben modelinde bir User sınıf var ve bir şifre hatırlatma e-posta göndermek gerekiyor.

  • Denetleyici bir User örneğini ve görünümünde bir Email sınıfına (daha doğrusu, ondan veya değerleri) da geçiyor mu? Bu durumda, denetleyici sonra e-posta gönderme gerçek yapardınız?
  • Ya da olur denetleyici çağrı User::sendEmail() ve e-posta için orada bile be bir görünüm (ve User gönderme mi?)
  • Veya Email kolları gönderme ve it görünümüne verilen Email? Için başka bir model sınıf var

Veya tamamen kaybettim ben? ;-)

Eğer bana vermek mümkün olabilir herhangi bir yardım için teşekkür ederiz!

4 Cevap

Gördüğüm kadarıyla, bir e-posta MVC kavramının durumunda Görünüm olan bir çerçevenin ekran tabakası ait olacaktır. E-postalar, tüm sonra, istek çıkışı için sadece başka bir görüntüleme seçeneği vardır.

Modeller ne Kontrolörleri ne çıktı oluşturmak veya görüntülemek için kullanılmalıdır. Bu MVC gibi bir tasarım deseni kullanarak bütün mesele bu.

Edit açıklığa kavuşturmak için; Denetleyici Görünüm oluşturmak ve göndermek istiyorsunuz, hangi 'çıktı' göndermeyi tetikleyebilir - Bir Modelin toplanan verileri kullanarak, e - posta, HTML veya belirli Görünüm için tasarlanmış olursa olsun başka şekilde olsun.

Eğer bir mesajlaşma sistemi bina sürece, e-postalar yerine çekirdek alanının parçası daha bir kaynak olacaktır. Bu tür böylece veritabanı erişimi, günlük ve kaynak gibi başka türlü olarak tedavi edebilir.

Şahsen, özellikle e-postalar için çok sıkı bir kavrama önlemek için bir mesaj servisine olarak soyut istiyorum.Ben - Bunun konuyla eğer, gelecekte diğer kanallar birlikte mesaj göndermek için izin verecek. Kontrolör enjekte mesaj servisine gerektiren ve mesaj göndermek istiyorum.

Eğer e-posta içeriğini doldurmak için kullanıcıdan değerleri gerekiyorsa bir kullanıcı nesnesi dahil etmek tek nedeni olurdu, ama bu temelde veri sadece bir dönüşümdür.

Eğer gerçekten MVC içine şeyleri yıkmak istiyorsanız ... Mark Seemann ne dedi kapalı bina.

MessageController -> does the sending of the message/email MessageModel -> stores the info for the message/email No View needed.

Ben sadece MessageModel doğrudan kullanıcı bilgileri geçerdi. MessageModel doğrudan User nesnesi geçirilecek olmayan nedeni var.

Diyorum ki:

  1. Kontrolörler şeyler yapmak

  2. İzlenme şeyler gösterilecek

  3. Bu bir kontrol gitmeli

EDIT: milesmeow dediği gibi, bu genişleme için izin mesajlaşma için bir denetleyicisi oluşturmak için mantıklı olur. Belki Twitter, IM, SMS, ya da gelecekte diğer bazı orta aracılığıyla bildirimlerini göndermek mümkün isteyeceksiniz. Bu gelecek için inşa öder.