2016-04-02 26 views
0

Fotoğraf galerileri için oldukça basit bir sitede çalışıyorum, kullanıcılar galerideki en sevdikleri fotoğrafa oy verebiliyorlar. Bir kullanıcı oyu, oylama nesnesini alan bir VoteCase olayının çağrıldığı her seferinde bazı etkinlik ayarlarım var. Laravel, Should Etkinlikler Veritabanı ile konuşur mu?

OY nesne

olay oy nesnesini alır ve onların fotoğraf seçildi diyerek fotoğraf sahibiyle ve e-posta gönderir voterID photoid ... oluşmaktadır. E-postayı göndermek için ayrı bir AppMailer.php sınıfı var.

Sorum şu açıkçası fotoğraf (Bunu zaten ($photo->user;)

için anlamlı bir ilişki var aittir Ancak olayın iş? Bir yapmak için kim olduğunu görmek için bir arama yapmak gerekir veritabanını çağırmak ve kullanıcı nesnesini AppMailer'e iletmek için mi yoksa AppMailer sınıfı tüm olayı almalı ve kullanıcı aramayı kendiliğinden yapmalı mı?

Oylama ile ilişkili birkaç oylama daha vardır. oylama kullanıcı kredisi ve muhtemelen bir "rozet" vb. atanması. Bunların her biri ek DB aramalarına sahip olabilir. Bu yüzden bunu koymak için en iyi yeri bilmek yararlıdır.

Bir olayın bir DTO'ya çok benzediğini söyledim, ancak onlarla olan deneyimim yok.

cevap

0

Not: Bu benim düşüncem değil bir kural (belki değil en iyi uygulama) z (yani mailler aradığınız Thats varsayarak) olay dinleyicisi bir DB arama yapmak için

Evet tamam olduğunu

  1. uygulama mailler sınıf sıkıca orm/DB birleştiğinde ve Sen olay dinleyicisi removi içinde ShouldQueue uygulamaktadır bir Single Responsibility

  2. sahiptir edilmez Bu şekilde herhangi bir performans kaygısı. (Haklısınız?)

+0

Yup ShouldQueue yayına girmeden önce uygulanacaktır! – dangel