XP CMS 管理工作台 XP CMS 管理工作台
首页 开发文档 后端开发

后端开发

XPCMS 后端基于 ThinkPHP 8,遵循「控制器→服务→模型」三层架构。

目录结构

tp/app/
├── common/         # 跨应用共享
│   ├── model/      # 数据模型
│   └── service/    # 业务服务(ConfigService、ThemeService …)
├── index/          # 前台应用
│   ├── controller/ # 控制器(Index、Article、Product …)
│   ├── route/      # 路由配置
│   └── middleware/ # 中间件(MemberAuth、Csrf …)
├── admin/          # 后台应用
└── api/            # API 应用

控制器规范

所有前台控制器共享 FrontendConfig Trait,统一注入站点配置、栏目、广告等全局变量。

class Article
{
    use FrontendConfig;

    public function __construct(App $app)
    {
        $this->app = $app;
        $this->request = $app->request;
        $this->assignSiteConfig(); // 注入全局变量
    }

    public function index()
    {
        $articles = Article::where('status', 2)
            ->order('publish_time desc')
            ->paginate($pageSize);
        View::assign('xp_articles', $articles);
        return View::fetch();
    }
}

服务层

所有跨控制器的业务逻辑封装到 app/common/service/ 下,例如:

  • ConfigService:站点 / 联系 / 社交 / 上传 配置
  • ThemeService:主题加载与切换
  • MemberService:会员登录、注册、找回

模型规范

  • 继承 think\Model,命名 app\common\model\Xxx
  • 表名前缀 xp_,主键 id
  • 时间字段:create_time、update_time(自动维护)
  • 状态字段:status(1=启用 / 2=发布 / 0=禁用)

路由

所有路由定义在 app/index/route/app.php,禁止使用控制器自动路由。

中间件

  • MemberAuth:会员身份解析(session + cookie 兜底)
  • Csrf:POST 表单 CSRF 校验
  • RateLimit:登录 / 留言接口限流
0.061829s