更新文档

This commit is contained in:
2026-04-22 19:31:54 +08:00
parent fe524c3871
commit b5304c67b9
2 changed files with 289 additions and 90 deletions
+163 -90
View File
@@ -1,100 +1,173 @@
## SentCMS介绍
> SentCMS网站管理系统是南昌腾速科技有限公司倾力打造的一款简单易用的网站管理系统,SentCMS网站管理系统(下文简称SentCMS)继承了thinkphp的优秀品质,秉承“大道至简”的设计理念。SnetCMS为网站建设而生,为网站建设减少90%的代码编写,只需前端设计师就可以设计出完美的网站,而如此完美的系统还是完全开源的。
# SentCMS
SentCMS 是基于 **ThinkPHP 6.x** 的内容管理系统,采用单应用架构,通过控制器命名空间划分四个模块:后台管理(admin)、前台展示(front)、用户中心(user)、API接口(api)。
> 由南昌腾速科技有限公司开发维护,遵循 Apache-2.0 开源协议。
## 环境要求
生产环境建议Linux+Nginx+php+mysql
建议PHP7+
| 依赖 | 版本 |
|------|------|
| PHP | >= 7.1 |
| MySQL | 5.5+ |
| 扩展 | pdo_mysql, mbstring, json, openssl, tokenizer |
生产环境推荐:Linux + Nginx + PHP-FPM + MySQL。
## 快速安装
```bash
# 克隆项目
git clone https://gitee.com/sentcms/sentcms.git sentcms
cd sentcms
# 安装依赖
composer install
# 配置环境变量
cp .example.env .env
# 编辑 .env 文件,填写数据库连接信息
```
将网站根目录指向 `public/`,然后访问 `http://你的域名/install.php` 完成安装。
> **URL 伪静态必须开启**,否则路由无法正常工作。Apache 用户使用 `public/.htaccess`Nginx 用户需自行配置 rewrite 规则。
## 目录结构
```
├─ addons/ 扩展插件目录
├─ app/ 应用核心代码
│ ├─ controller/ 控制器
│ │ ├─ admin/ 后台管理控制器(权限控制、RBAC)
│ │ ├─ api/ API 接口控制器(JWT 认证)
│ │ ├─ front/ 前台展示控制器(公开访问)
│ │ └─ user/ 用户中心控制器(Session 认证)
│ ├─ http/ HTTP 服务层
│ │ ├─ form/ 自定义表单引擎
│ │ ├─ middleware/ 中间件(Admin, Api, ApiAuth, Validate
│ │ └─ validate/ 自动验证器
│ ├─ model/ 数据模型(按业务域分目录)
│ ├─ services/ 业务逻辑服务层
│ └─ common.php 全局辅助函数
├─ config/ 应用配置文件
├─ extend/ 自定义类库
│ ├─ com/ Database, Datatable, Sent 标签库, Version
│ └─ doc/ 文档注释解析器
├─ public/ 网站根目录(对外访问)
│ ├─ static/ 静态资源(CSS/JS/图片/插件)
│ ├─ template/ 前台主题模板目录
│ ├─ uploads/ 上传文件目录
│ ├─ index.php 入口文件
│ └─ install.php 安装向导
├─ route/
│ └─ app.php 路由定义(含动态内容模型路由)
├─ view/ 后台视图模板
│ └─ admin/ 后台管理界面模板
├─ runtime/ 运行时目录(缓存/日志/会话/备份)
├─ .example.env 环境配置模板
└─ composer.json Composer 依赖配置
```
## 核心特性
- **单应用架构** — 四个模块通过控制器命名空间 `app\controller\{admin,front,user,api}` 划分,非 ThinkPHP 多应用模式
- **动态内容模型** — 通过后台创建内容模型,自动注册路由,所有内容类型共用 `Content` 控制器
- **RBAC 权限系统** — 基于节点的权限控制,权限细化到按钮级别,支持超级管理员(`rootuid` 配置)
- **JWT API 认证** — API 模块使用 JWT Token 认证,支持跨域访问
- **插件系统** — 通过 `addons/` 目录扩展功能,支持钩子事件机制
- **自定义表单引擎** — `app/http/form/` 提供灵活的表单构建能力
- **多主题支持** — 前台模板位于 `public/template/`,支持 PC/移动端主题自动切换
- **自定义标签库** — `com\Sent` ThinkPHP 标签库,预加载到模板引擎
## 认证机制
| 模块 | 认证方式 | 说明 |
|------|---------|------|
| admin | Session + RBAC | `Admin` 中间件,Session 存储于 `adminInfo`,权限通过 `sent\auth\Auth` 校验 |
| api | JWT Token | `ApiAuth` 中间件,Token 过期返回 code 2001,无效返回 code 2000 |
| user | Session | `user\Base::initialize()` 中检查登录状态,未登录重定向至登录页 |
| front | 无 | 公开访问 |
## 环境变量说明
编辑 `.env` 文件(从 `.example.env` 复制):
```ini
APP_DEBUG = false # 调试模式
VERSION = 4.0.5 # 版本号(后台展示)
rootuid = 1 # 超级管理员用户 ID
[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = your_database
USERNAME = root
PASSWORD = your_password
HOSTPORT = 3306
CHARSET = utf8
PREFIX = sent_ # 表前缀
[JWT]
SECRET = your_jwt_secret # JWT 签名密钥
```
## 主要依赖
| 包名 | 用途 |
|------|------|
| topthink/framework ^6.0 | ThinkPHP 核心框架 |
| sent/think-auth ^1.2 | RBAC 权限管理 |
| sent/think-jwt ^1.0 | JWT 认证 |
| sent/think-addons ^1.0 | 插件系统 |
| overtrue/wechat ^4.2 | 微信 SDK |
| topthink/think-captcha ^3.0 | 验证码 |
| liliuwei/thinkphp-jump ^1.4 | 控制器跳转 trait |
## 开发指南
### 新增后台控制器
1. 创建 `app/controller/admin/{Name}.php`,继承 `app\controller\admin\Base`
2. 创建对应视图目录 `view/admin/{name}/`
3. 路由自动匹配:`admin/{name}/{action}`
4.`auth_menu` 数据表中添加菜单项
### 新增 API 接口
1.`app/controller/api/{Name}.php` 中添加方法,继承 `app\controller\api\Base`
2. 路由自动匹配:`api/{name}/{action}`
3. 默认启用 JWT 认证(`login`/`register` 除外)
### 新增内容模型
通过后台管理界面创建 → 系统自动注册动态路由。内容模型统一映射到 `Content` 控制器处理。
### 新增插件
1. 创建 `addons/{name}/` 目录,包含 `controller/Admin.php``view/` 模板
2.`addons` 配置和数据库表中注册
## 注意事项
- **勿删** `install.lock` — 它是安装锁文件,防止重复安装
- **勿提交** `.env` — 已在 `.gitignore` 中忽略
- `composer.lock` 已忽略 — 每次需 `composer install` 重新生成
- `runtime/``public/uploads/` 目录需可写权限
- 前台模板在 `public/template/` 而非 `view/``view/` 仅存放后台模板)
- 内容模型控制器是虚拟的,所有路由映射到 `Content` 控制器
## 在线预览
demo http://www.sentcms.com/
- 演示地址:http://www.sentcms.com/
- 账号:admin / admin888(请勿修改密码或删除数据)
- 交流社区:http://bbs.sentcms.com
账号:admin
密码:admin888 (大家手下留情,不要去改密码和删除数据!!!!!)
## 版本历史
## 安装
- **4.x**(当前):https://gitee.com/sentcms/sentcms — 基于 ThinkPHP 6.x
- **3.x**:历史版本,基于 ThinkPHP 3.x/5.x
为了保证系统的安全性,系统根目录移至public目录下,把程序和逻辑代码放到根目录以外。在配置网站时,把网站根目录指向web目录下,然后通过composer把所需的扩展类库更新,包括thinkphp框架同样通过composer进行更新。
## 许可证
> 最好是使用云主机进行安装,虚拟主机有很多局限性
```
git clone https://gitee.com/sentcms/sentcms.git sentcms
cd sentcms
```
> 如果是直接下载压缩包则直接进入解压文件夹,然后执行下面的代码
```
composer install
```
访问网址:http://网址/install.php
> 系统必须开启伪静态、
> 系统必须开启伪静态、
> 系统必须开启伪静态、
>(重要的事情说三篇)
## 交流讨论
> * 点击链接加入圈子:http://bbs.sentcms.com
[![](qrcode.png)](http://bbs.sentcms.com)
## SentCMS特性包括:
* 全新的路由体系,完美的路由解决方案
* 全新的系统架构,采用thinkphp6.0.* 内核框架
* 完善而健全的会员体系
* 健全的权限系统,权限细化到界面上的按钮和链接
* 漂亮的后台界面,后台界面采用世界领先的前端框架bootstrap,自适应的体验
* 简单易用的标签体系
* 便捷的文档系统,无需程序即可设计出完美的模型,做出完美的网站,传送门:http://www.kancloud.cn/tensent/sentcms4(未完成)
下载最新版框架后,解压缩到sentcms目录下面,可以看到初始的目录结构如下:
## 目录结构
~~~
├─addons 扩展插件目录
├─app 项目目录文件
│ ├─controller 控制器文件
│ │ ├─admin 网站后台控制器文件夹
│ │ ├─api 网站API控制器文件夹
│ │ ├─user 网站用户中心控制器文件夹
│ │ ├─front 网站前台控制器文件夹
│ │ ├─Base.php 网站控制器基类
│ │ ├─Upload.php 网站文件上传控制器
│ ├─http HTTP服务
│ │ ├─form 表单控件文件夹
│ │ ├─middleware 中间件文件夹
│ │ ├─validate 验证类文件夹
│ ├─model 模型文件
│ │ ├─Member.php 用户模型
│ │ ├─ …………
│ ├─common.php 公共函数库文件
│ │ ├─ …………
├─runtime 缓存以及备份目录
├─extend 自定义类库扩展目录
├─vendor 网站扩展类库目录,通过composer更新下载的类库扩展在此目录
├─public 网站根目录
│ ├─static 静态文件文件夹
│ ├─uploads 上传文件目录
│ ├─template 网站主题模板目录
│ ├─.htaccess Apache下伪静态文件
│ ├─favicon.ico ico图标
│ ├─index.php 入口文件
├─.example.env 系统配置模板
├─composer.json composer配置文件
├─README.md 系统介绍文件
~~~
## 版本列表
> 4.0 https://gitee.com/sentcms/sentcms
> 3.2 https://git.oschina.net/sentcms/sentcms/repository/archive/3.2
> 3.0.1804 https://git.oschina.net/sentcms/sentcms/repository/archive/3.0.1804
> 3.0.1707 https://git.oschina.net/sentcms/sentcms/repository/archive/3.0.1707
> 3.0.161201https://git.oschina.net/sentcms/sentcms/repository/archive/3.0.161201
[Apache-2.0](LICENSE.txt)