发表文章+5积分
评论+1积分
public function register($data){
// 注册,创建用户
$user = User::create($data);
// 增加积分
addScore($user['id'], 100);
}
public function publish($data, $userId){
// 发表文章
Article::create($data);
// 增加积分
addScore($userId, 5);
}
public function comment($data, $userId){
// 评论
Comment::create($data);
// 增加积分
addScore($userId, 1);
}像这类的操作,如果在注册/发文/评论的代码后面,直接添加向数据库插入积分表的代码,是可以实现,但感觉不是最佳实践,想请教,在实际生产中,是如何实现的呢?
是TP6中的事件吗?
如之后要追加其他需求,如发邮件消息通知,
每个函数里又要追加发邮件的代码,如:
public function register($data){
// 注册,创建用户
$user = User::create($data);
// 增加积分
addScore($user['id'], 100);
// 发邮件
Email::send("内容");
}
public function publish($data, $userId){
// 发表文章
Article::create($data);
// 增加积分
addScore($userId, 5);
// 发邮件
Email::send("内容");
}
public function comment($data, $userId){
// 评论
Comment::create($data);
// 增加积分
addScore($userId, 1);
// 发邮件
Email::send("内容");
}这样有几十个操作的话,就要复制粘贴几十次。如果还要再记录日志Log::info("内容");
就再在每个操作函数后面,追加几十次 Log::info("内容");
感觉生产上应该不是这样做的
最佳答案