限时 5折! 详情

hyperf 实战之评论/回复功能实现

1082 0 0

截止目前,整个问答系统的功能,我们还剩下评论/回复模块未完善(模版文件参考 view.html ),在这个模块中,有3个接口需要开发,分别是发布评论/回复、评论/回复列表、评论/回复点赞。

先来简单分析下功能实现上的问题:

发布评论/回复

  1. 发布评论和回复是同一个接口,回复的时候多了一个评论的 id 即 pid
  2. 评论/回复,需要同步更新 user_dynamic.answers 、question_dynamic.replys 和 question_dynamic.comments 以及更新问题所属的热门榜单

评论/回复列表

  1. 列表需要注意用户是否已经登录,除了获取用户信息、较复杂的是如何判断用户是否对当前评论/回复已点赞
  2. 列表还有一个层级的树状关系,这里我们只考虑2层,这里会提供一个很好用的方法 generate_tree,避免递归造成的效率问题以及内存溢出

评论/回复点赞

  1. 点赞的功能略微复杂,我们选择用 redis 的"位"去实现
  2. 通过更新 user_dynamic.supports 、question_dynamic.supports 以及 answer.supports

下面我们一起看下详细的实现步骤。

1、新增 App\Model\Answer

去购买

还有93%的精彩内容,购买继续阅读