广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php怎么实现关注功能
  • 453
分享到

php怎么实现关注功能

php 2019-11-14 01:11:41 453人浏览 才女
摘要

本文操作环境:windows7系统、PHP7.1版、DELL G3电脑php怎么实现关注功能?php + redis 实现关注功能:产品价值 关注功能2: 功能分析之“关注”功能3: 平平无奇的「关注」功能,背后有4点重大价值应用场景在做P

本文操作环境:windows7系统、PHP7.1版、DELL G3电脑

php怎么实现关注功能?

php + redis 实现关注功能:

产品价值

关注功能
2: 功能分析之“关注”功能
3: 平平无奇的「关注」功能,背后有4点重大价值

应用场景

在做PC或者APP端时,掺杂点社交概念就有关注和粉丝功能;
数据量小的话数据库还能支持,如果数据量很庞大还是用缓存比较好。

具体实现

1 控制层实现

<?php

namespace App\Controller\Test;

use App\Controller\AbstractController;
use App\Service\Ptg\TestFollowService;
use Hyperf\Di\Annotation\Inject;
use Hyperf\httpserver\Annotation\Controller;
use Hyperf\HttpServer\Annotation\Middleware;
use Hyperf\HttpServer\Annotation\RequestMapping;


class TestFollowController extends AbstractController
{
    
    protected $testFollowService;

    
    public function follow(Request $request)
    {
        $type = $request->input('type', 'follow');         // 1-关注-follow 2-取消关注-remove
        $userId = $request->input('user_id', 0);    // 我的用户ID
        $otherId = $request->input('other_id', 0);  // 我关注的用户ID
        if ($userId == $otherId) {
            return $this->response->apiResponse();
        }
        $this->testFollowService->follow($type, $userId, $otherId);
        return $this->response->apiResponse();
    }

    
    public function myFollowAndFans(Request $request)
    {
        $type = $request->input('type', 'follow');  // 1-关注-follow 2-粉丝-fans
        $userId = $request->input('user_id', 0);    // 我的用户ID
        $page = $request->input('page', 1);         // 页码
        $limit = $request->input('limit', 10);      // 每页显示条数
        $res = $this->testFollowService->myFollowAndFans($userId, $type, $page, $limit);
        return $this->response->apiResponse($res);
    }
}
?>

2 服务层实现

<?php

namespace App\Service\Ptg;

use App\Repository\Redis\TestFollowRedis;
use App\Service\AbstractService;
use Hyperf\Di\Annotation\Inject;

class TestFollowService extends AbstractService
{
    
    protected $testFollowRedis;

    
    public function follow($type = 'follow', int $userId, int $otherId)
    {
        // 关注
        if ($type === 'follow') {
            // 先处理 Mysql
            // TODO mysql 操作
            // 然后处理 redis
            $this->testFollowRedis->zAddFollow($userId, $otherId);
            $this->testFollowRedis->zAddFans($otherId, $userId);
        }
        // 取消关注
        if ($type === 'remove') {
            // 先处理 mysql
            // TODO mysql 操作
            // 然后处理 redis
            $this->testFollowRedis->zRemFollow($userId, $otherId);
            $this->testFollowRedis->zRemFans($otherId, $userId);
        }
    }

    
    public function myFollowAndFans(int $userId, $type = 'follow', $page = 1, $limit = 10)
    {
        $start = $limit * ($page - 1);
        $end = $start + $limit - 1;
        $res = [];
        if ($type === 'follow') {
            $res = $this->testFollowRedis->zRangeFollow($userId, $start, $end);
        }
        if ($type === 'fans') {
            $res = $this->testFollowRedis->zRangeFans($userId, $start, $end);
        }
        return $res;
    }
}
?>

仓储层实现【推荐:PHP视频教程

<?php

namespace App\Repository\Redis;

class TestFollowRedis extends AbstractRedis
{
    
    private $followKey = '%u:follow';

    
    private $fansKey = '%u:fans';

    
    public function initPrefix()
    {
        return 'follow:';
    }

    
    public function zAddFollow($userId, $otherId)
    {
        $this->redis->zAdd(sprintf($this->prefix . $this->followKey, $userId), time(), $otherId);
    }

    
    public function zRemFollow($userId, $otherId)
    {
        $this->redis->zRem(sprintf($this->prefix . $this->followKey, $userId), $otherId);
    }

    
    public function zRangeFollow(int $userId, int $start = 0, int $end = 9)
    {
        return $this->redis->zRange(sprintf($this->prefix . $this->followKey, $userId), $start, $end);
    }

    
    public function zRevRangeFollow(int $userId, int $start = 0, int $end = 9)
    {
        return $this->redis->zRevRange(sprintf($this->prefix . $this->followKey, $userId), $start, $end);
    }

    
    public function zAddFans($userId, $otherId)
    {
        $this->redis->zAdd(sprintf($this->prefix . $this->fansKey, $userId), time(), $otherId);
    }

    
    public function zRemFans($userId, $otherId)
    {
        $this->redis->zRem(sprintf($this->prefix . $this->fansKey, $userId), $otherId);
    }

    
    public function zRangeFans(int $userId, int $start = 0, int $end = 9)
    {
        return $this->redis->zRange(sprintf($this->prefix . $this->fansKey, $userId), $start, $end);
    }

    
    public function zRevRangeFans(int $userId, int $start = 0, int $end = 9)
    {
        return $this->redis->zRevRange(sprintf($this->prefix . $this->fansKey, $userId), $start, $end);
    }
}

以上就是php怎么实现关注功能的详细内容,更多请关注编程界其它相关文章!

--结束END--

本文标题: php怎么实现关注功能

本文链接: https://www.lsjlt.com/news/645.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php怎么实现关注功能
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑php怎么实现关注功能?php + redis 实现关注功能:产品价值 关注功能2: 功能分析之“关注”功能3: 平平无奇的「关注」功能,背后有4点重大价值应用场景在做P...
    99+
    2019-11-14
    php
  • PHP怎么实现用户注册功能
    随着互联网应用的不断发展,用户注册功能已经成为各种网站和应用必备的功能之一。PHP是一种流行的服务器端脚本语言,相对于其他语言,PHP在实现用户注册功能方面更加简单、灵活、高效。本文将详细介绍PHP实现用户注册功能的步骤和相关注意事项。一、...
    99+
    2023-05-14
  • php怎么实现关键字搜索功能
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑php怎么实现关键字搜索功能?PHP实现关键字搜索后描红功能示例在刚开始学习php的时候,就对搜索过后的关键字描红感到好奇,但是这几天在巩固php基础的时候,就发现原来这...
    99+
    2018-09-10
    PHP 关键字 搜索 描红
  • php如何实现注册功能
    这篇文章主要介绍php如何实现注册功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php注册功能的实现方法:首先在已有的数据库里创建user表;然后创建HTML注册表单以及PHP注册程序;最后创建登录表单和登录程序...
    99+
    2023-06-14
  • PHP实现微信关注公众号扫码登录功能
    PHP微信扫码登录看起来简单,但做起来有点复杂,微信接口的坑有点多,稍不注意,就费很多时间。PHP判断是否首次关注公众号,扫码关注公众号获取微信用户头像、openid和省市等信息源码。        ...
    99+
    2023-06-05
  • ajax中怎么实现注册功能
    ajax中怎么实现注册功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、当我们在验证表单的时候,为了阻止把错误的也发送到服务器,我们通...
    99+
    2022-10-19
  • 怎么用php实现简单登录和注册功能
    要实现简单的登录和注册功能,可以按照以下步骤使用PHP编写代码:1. 创建数据库表格在数据库中创建一个名为 `users` 的表格,...
    99+
    2023-10-10
    php
  • Android开发使用Databinding实现关注功能mvvp
    目录正文目标ModlePresenter正文 说到关注功能,可能很多小伙伴要说了。谁不会写 但是没有合理的架构,大家写出来的代码很可能是一大堆的复制粘贴。比如十几个页面,都有这个关注...
    99+
    2022-11-13
  • PHP如何实现用户注册功能
    这篇文章主要介绍了PHP如何实现用户注册功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP如何实现用户注册功能文章都会有所收获,下面我们一起来看看吧。一、编写HTML页面为实现用户注册功能,首先需要编写H...
    99+
    2023-07-05
  • php相册功能怎么实现
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑php相册功能怎么实现相册功能实现(包含php图片上传,后台管理,浏览和删除)教程例子包括五个部分:一、相册首页<html> <head> ...
    99+
    2022-02-28
    php 相册功能
  • php怎么实现插件功能
    本教程操作环境:Windows7系统、PHP8.1版、Dell G3电脑。php怎么实现插件功能?php实现插件插件很多从事互联网行业或者开发的人员来不是很陌生,wordpress之所以为什么那么受欢迎,很大部分是因为他的强大的插件库,还要...
    99+
    2022-11-25
    插件 php
  • php怎么实现下载功能
    小编给大家分享一下php怎么实现下载功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php实现下载功能的方法:首先将文件下载请求映射到后端程序url;然后编写具...
    99+
    2023-06-14
  • php怎么实现评论功能
    要实现评论功能,可以使用数据库来存储评论内容,并使用PHP来处理用户的评论请求。首先,你需要创建一个数据库表来存储评论数据。可以创建...
    99+
    2023-08-11
    php
  • jsp怎么实现登录和注册功能
    要实现登录和注册功能,可以按照以下步骤进行:1. 创建一个登录页面(login.jsp)和一个注册页面(register.jsp)。...
    99+
    2023-08-09
    jsp
  • html5+css3怎么实现注册表单功能
    这篇文章主要介绍“html5+css3怎么实现注册表单功能”,在日常操作中,相信很多人在html5+css3怎么实现注册表单功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2022-10-19
  • NodeJs+MySQL怎么实现注册登录功能
    这篇文章主要介绍“NodeJs+MySQL怎么实现注册登录功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“NodeJs+MySQL怎么实现注册登录功能”文章能帮助大家解决问题。nodejs中mys...
    99+
    2023-06-30
  • Android用SharedPreferences怎么实现登录注册注销功能
    这篇“Android用SharedPreferences怎么实现登录注册注销功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇...
    99+
    2023-06-30
  • Java实现公众号功能、关注、消息推送
    Java实现公众号功能开发 文章目录 Java实现公众号功能开发描述引入依赖注册公众号配置公众号各事件处理实现公众号事件处理类实现公众号日志记录处理器实现公众号用户关注处理器实现公众号用户取消...
    99+
    2023-10-20
    java 微信公众平台
  • 怎么关闭PHP的提醒功能
    这篇文章主要介绍了怎么关闭PHP的提醒功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么关闭PHP的提醒功能文章都会有所收获,下面我们一起来看看吧。什么是PHP的提醒功能?在PHP编程中,程序员有时会遇到一...
    99+
    2023-07-05
  • php怎么实现扫一扫功能
    本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。php怎么实现扫一扫功能PHP扫码登录扫码登录具体实现方式扫码登录具体实现流程:1、生成二维码,生成一个唯一标识uuid,该标识贯穿整个流程,使用redis保存临时信息...
    99+
    2019-02-21
    php 扫一扫
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作