Skip to content

后台系统结构

目录


1. 功能说明

概述

本文档详细介绍 Niucloud 后端系统的整体架构和目录结构,帮助开发者快速理解系统组织方式。

适用场景

  • 新开发者快速熟悉系统
  • 系统架构设计参考
  • 代码定位和维护

2. 设计思路

架构模式

系统采用经典的 MVC(Model-View-Controller)架构模式,结合 Service 层进行业务逻辑处理。

┌─────────────────────────────────────────────────────────────┐
│                        请求入口                              │
│                    (public/index.php)                        │
└──────────────────────────┬──────────────────────────────────┘

┌──────────────────────────▼──────────────────────────────────┐
│                      路由层 (Route)                          │
│              定义 URL 与 Controller 的映射                    │
└──────────────────────────┬──────────────────────────────────┘

┌──────────────────────────▼──────────────────────────────────┐
│                     中间件 (Middleware)                      │
│         认证、权限、日志、跨域等请求预处理                      │
└──────────────────────────┬──────────────────────────────────┘

┌──────────────────────────▼──────────────────────────────────┐
│                    控制器 (Controller)                       │
│              接收请求,调用 Service,返回响应                   │
└──────────────────────────┬──────────────────────────────────┘

┌──────────────────────────▼──────────────────────────────────┐
│                    服务层 (Service)                          │
│              业务逻辑处理,协调多个 Model 操作                  │
└──────────────────────────┬──────────────────────────────────┘

┌──────────────────────────▼──────────────────────────────────┐
│                    模型层 (Model)                            │
│              数据访问,定义表结构和数据操作                     │
└──────────────────────────┬──────────────────────────────────┘

┌──────────────────────────▼──────────────────────────────────┐
│                    数据存储                                  │
│              MySQL / Redis / 文件存储                         │
└─────────────────────────────────────────────────────────────┘

3. 系统架构

3.1 整体架构

niucloud-lite/
├── app/                    # 应用代码目录
│   ├── adminapi/          # 后台管理 API
│   ├── api/               # 前台 API
│   ├── model/             # 数据模型
│   ├── validate/          # 数据验证器
│   ├── service/           # 业务服务层
│   ├── middleware/        # 中间件
│   ├── job/               # 定时任务
│   ├── listener/          # 事件监听器
│   ├── dict/              # 数据字典
│   └── common.php         # 公共函数
├── config/                # 配置文件
├── core/                  # 核心功能库
├── public/                # 公共访问目录
├── runtime/               # 运行时目录
├── route/                 # 路由配置
└── vendor/                # 第三方依赖

3.2 模块划分

模块路径说明
后台 APIapp/adminapi/后台管理系统接口
前台 APIapp/api/用户端接口
数据模型app/model/数据库模型定义
验证器app/validate/请求数据验证
服务层app/service/业务逻辑封装

4. 目录结构

4.1 后台 API 目录 (app/adminapi/)

app/adminapi/
├── controller/            # 控制器
│   ├── sys/              # 系统管理
│   │   ├── Config.php    # 系统配置
│   │   ├── User.php      # 管理员管理
│   │   └── Role.php      # 角色权限
│   ├── member/           # 会员管理
│   │   ├── Member.php    # 会员列表
│   │   └── Level.php     # 会员等级
│   └── ...
├── middleware/           # 中间件
│   ├── Auth.php          # 认证中间件
│   └── Permission.php    # 权限中间件
└── route/               # 路由配置
    └── admin.php         # 后台路由

4.2 前台 API 目录 (app/api/)

app/api/
├── controller/           # 控制器
│   ├── auth/            # 认证相关
│   │   ├── Login.php    # 登录
│   │   └── Register.php # 注册
│   ├── member/          # 会员中心
│   └── ...
├── middleware/          # 中间件
└── route/              # 路由配置
    └── api.php         # API 路由

4.3 模型目录 (app/model/)

app/model/
├── sys/                 # 系统模型
│   ├── SysUser.php     # 管理员模型
│   ├── SysConfig.php   # 配置模型
│   └── SysRole.php     # 角色模型
├── member/             # 会员模型
│   ├── Member.php      # 会员模型
│   └── MemberLevel.php # 会员等级模型
└── ...

4.4 核心库目录 (core/)

core/
├── base/               # 基础类
│   ├── BaseController.php
│   ├── BaseModel.php
│   └── BaseService.php
├── pay/                # 支付功能
│   ├── Pay.php
│   └── channel/
├── upload/             # 文件上传
│   └── Upload.php
├── oauth/              # 第三方登录
│   └── OAuth.php
├── template/           # 模板消息
│   └── Template.php
└── util/               # 工具类
    ├── Http.php
    ├── Str.php
    └── Time.php

4.5 配置文件目录 (config/)

config/
├── app.php            # 应用配置
├── database.php       # 数据库配置
├── cache.php          # 缓存配置
├── log.php            # 日志配置
├── queue.php          # 队列配置
└── ...

5. 常见问题

Q1: 如何定位控制器文件

问题: 已知接口地址 /api/v1/user/info,如何找到对应的控制器?

解决方案:

  1. 查看路由配置 route/api.php
  2. 找到对应的路由定义
  3. 根据路由定位到控制器文件
php
// route/api.php
Route::get('user/info', 'api/User/info');
// 对应文件:app/api/controller/User.php 的 info 方法

Q2: 模型和表名的对应关系

问题: 如何知道模型对应的数据库表名?

解决方案:

php
// 模型中定义表名
class Member extends Model {
    protected $name = 'member';  // 对应 member 表
    // 或使用完整表名
    protected $table = 'nc_member';
}

Q3: 中间件执行顺序

问题: 多个中间件的执行顺序是怎样的?

解决方案: 中间件按照定义顺序执行,返回时逆序执行。

php
// 中间件配置
'middleware' => [
    'auth',      // 先执行
    'permission', // 再执行
    'log',       // 最后执行
],

修订记录

版本日期修订人修订内容
v1.02026-04-08Niucloud Team初始版本