首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拉勒维尔,事件应该告诉数据库吗?

拉勒维尔,事件应该告诉数据库吗?
EN

Stack Overflow用户
提问于 2016-04-02 03:32:17
回答 1查看 70关注 0票数 0

我正在为图片库做一个非常简单的网站,用户可以在图片库中对他们最喜欢的照片进行投票。每次用户投票时,我都会设置一些事件,调用一个VoteCase事件,该事件接收投票对象。

对象包括.

  • photoID
  • voterID

该事件收到投票对象,并发送照片所有者和电子邮件说,他们的照片被选中。有一个单独的AppMailer.php类来发送电子邮件。

我的问题是,很明显,我需要做一个查找,看看照片属于谁(我已经有一个雄辩的关系($photo->user;) )

但这是这次活动的工作吗?要执行数据库调用并检索要传递给AppMailer的用户对象?或者AppMailer类是否应该接收整个事件,并自行进行用户查找?

还有其他一些与投票相关的事件。增加投票计数,给予投票用户信用,并可能分配一个“徽章”等等。因此,知道放置这个的最佳地点是有帮助的。

有人告诉我,一个事件与DTO非常相似,但我对它们的体验是不存在的。

EN

回答 1

Stack Overflow用户

发布于 2016-04-02 22:27:47

注:这是我的意见,不是一条规则(也许不是最佳做法)。

是的,您可以在事件侦听器中调用DB (假设您在那里调用邮件程序)。

  1. 这样,应用程序mailer类就不会紧密耦合到ORM/DB,并且有一个单一责任
  2. 您要在事件侦听器中实现ShouldQueue,以消除任何性能问题。(你是对的?)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36368855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档