0

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

VOTE对象包括...

  • 照片身份证
  • 选民编号

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

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

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

还有一些与投票相关的其他事件。增加投票计数,给予投票用户信用并可能分配“徽章”等。其中每一个都可能有额外的数据库查找。所以知道放置它的最佳位置是有帮助的。

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

4

1 回答 1

0

注意:这是我的意见,不是规则(也许不是最佳实践)

是的,您可以在事件侦听器中进行数据库调用(假设那是您调用邮件程序的地方)

  1. 这样,您的应用程序邮件类不会与您的 ORM/DB 紧密耦合,并且具有单一职责

  2. 您正在事件侦听器中实现 ShouldQueue 以消除任何性能问题。( 你说的对? )

于 2016-04-02T22:27:47.813 回答