[TOC]
## 简介
在本节,我们将首先分析一下要构建项目( ThinkBBS )的功能,便大家对我们要开发的项目有一个初步概念。
## 用例分析
ThinkBBS 是本教程将要构建的项目名称,是一款论坛软件。此论坛软件是以 [ThinkPHP 技术论坛](https://learnku.com/thinkphp) 作为基础原型来构建。
下面我们简单地从产品用例的角度上来分析 ThinkBBS 的需求,好让大家对我们即将开发的项目有个基础的概念。我们主要从以下三种元素入手:
* 角色
* 信息
* 动作
接下来做单独分解。
## 1. 角色
在 ThinkBBS 里,将会出现以下角色:
- 游客 —— 没有登录的用户(前台应用);
- 用户 —— 社区注册用户(前台应用);
- 运营 —— 辅助管理员做社区内容管理(后台应用);
- 站长 —— 权限最高的用户角色(后台应用)。
我们项目在构建过程中前后台是分离的,前后台权限是完全独立的,但在同一平台内高权限用户将包含低权限用户的权限,即 **用户** 拥有 **游客** 的所有权限,**站长** 拥有 **运营** 的所有权限。
## 2. 信息结构
主要信息有:
- 用户 —— 模型名称 User,论坛为 UGC 产品,所有内容都围绕用户来进行;
- 话题 —— 模型名称 Topic,ThinkBBS 论坛应用的最核心数据,有时我们称为「帖子」;
- 分类 —— 模型名称 Category,话题的分类,每一个话题必须对应一个分类,分类由 **运营** 或 **站长** 创建;
- 回复 —— 模型名称 Reply,针对某个话题的讨论,一个话题下可以有多个回复。
## 3. 动作
角色和信息之间的互动称之为『动作』,动作主要由以下几个:
- 创建 Create
- 查看 Read
- 编辑 Update
- 删除 Delete
## 用例
我们将分别讲解角色的用例,为了减少重复,我们对讲解的顺序做了设计,同平台内排后的高权限角色适用前面角色的用例。
## 1. 游客
- 游客可以查看所有话题列表;
- 游客可以查看某个分类下的所有话题列表;
- 游客可以按照发布时间和最后回复时间进行话题列表排序;
- 游客可以查看单个话题内容;
- 游客可以查看话题的所有回复;
- 游客可以通过注册按钮创建用户(游客专属);
- 游客可以查看用户的个人页面。
## 2. 用户
- 用户可以在某个分类下发布话题;
- 用户可以编辑自己发布的话题;
- 用户可以删除自己发布的话题;
- 用户可以回复所有话题;
- 用户可以删除自己的回复;
- 用户可以编辑自己的个人资料。
## 3. 运营
- 运营可以访问后台;
- 运营可以删除注册用户;
- 运营可以删除所有的话题;
- 运营可以删除所有的回复;
- 运营可以 CURD 分类。
## 4. 站长
- 站长可以修改站点设置;
- 站长可以 CURD 后台管理员用户;
- 站长可以 CURD 后台角色组;
- 站长可以 CURD 后台访问路由。
- 第一章 基础信息
- 序言
- 关于作者
- PHP和ThinkPHP
- 如何正确阅读本书
- 写作约定
- 开发规范
- 章节体例
- 本书源码
- 第二章 舞台布置
- 开发环境
- 产品分解
- Git和GitHub
- 创建项目
- 数据库视图管理工具
- 统一代码风格
- 目录结构
- 配置信息
- 后台应用搭建
- 助手函数
- 前台布局模板
- 基础控制器
- 小结
- 第三章 注册登录
- 数据迁移
- 表单提交
- 表单验证
- 模型验证
- 短信提供商
- 发送短信
- 手机验证
- 注册提醒
- 登录与退出
- 重置密码
- 数据填充
- 小结
- 第四章 用户相关
- 个人中心
- 编辑个人资料
- 上传图片
- 上传头像
- 显示头像
- 限制头像分辨率
- 裁剪头像
- 显示注册时间
- 授权访问
- 小结
- 第五章 帖子列表
- 话题分类
- 话题模型
- 话题列表
- 性能优化
- 分类话题列表
- 话题列表排序
- 用户发布的话题
- 分页器美化
- 小结
- 第六章_帖子CURD
- 创建话题
- 生成摘要
- 编辑器优化
- 上传图片
- 显示话题
- 编辑话题
- 删除话题
- 小结
- 第七章 帖子回复
- 回复模型
- 回复列表
- 发表回复
- 删除回复
- XSS 安全漏洞
- 小结
- 第八章 角色权限和管理后台
- 多角色用户权限
- 用户管理
- 话题管理
- 回复管理
- 小结
- 第九章 杂项
- 边栏活跃用户
- 用户最后登录时间
- 边栏资源推荐
- 站点首页
- 小结
- 第十章 总结
- 全书总结
- 附录
- 浅谈ThinkPHP6.0 路由