简介
DouPHP 是一款基于 PHP 的企业级多端应用系统,采用 MVC 分层与模块化、插件化设计,内置 CMS 内容管理、电商交易、用户中心、营销工具(优惠券、分销等)、AI 创作助手、多端模板与小程序支持。系统提供前台站点、后台管理与开放 API 三端入口,适合企业官网建设、电商网站开发、内容管理平台与行业解决方案落地。
核心特性
- 多端应用根目录:前台(front)、后台(admin)、API(api)三端独立入口、共享核心,互不污染
- 模块化设计:40+ 官方模块按需安装,文章、产品、订单、会员、评论、预约、表单、投票等开箱即用
- 微信小程序:内置 TypeScript 小程序源码(含 WeUI 组件库),与 API 端控制器一一对应
- AI 能力:内置 AI 模块,内容模块可接入 AI 检索与生成,支持 GEO 生成式引擎优化
- 支付与登录插件:微信支付、支付宝、PayPal、连连支付等支付插件,微信 / QQ / 微博第三方登录
- 多语言:简体中文、繁体中文、英文三语言包,前台支持语言前缀路由(如
/en/article/1) - 安全机制:CSRF 自动校验、XSS 过滤、登录限流、后台权限分级、安全响应头、审计日志
多端应用根目录架构
DouPHP 采用清晰的多端应用根目录结构,每个目录都有明确的职责划分:
graph TB
A["DouPHP多端应用根目录"] --> B["前台 front<br/>面向用户的页面渲染与业务控制器"]
A --> C["后台 admin<br/>运营管理、数据维护、配置与审计"]
A --> D["接口 api<br/>对外暴露的 RESTful 能力"]
A --> E["核心框架 core<br/>路由、容器、ORM、文件系统、中间件"]
A --> F["配置 config<br/>数据库、模块开关、安全、AI等"]
A --> G["主题 theme / miniprogram<br/>前端模板与小程序代码"]
A --> H["插件 plugin<br/>支付、物流、第三方登录等可插拔能力"]
A --> I["存储 storage<br/>运行时缓存、锁与日志等"]
章节来源
- index.php:1-126
- core/bootstrap.php:1-180
- config/config.php:1-53
- config/module.php:1-132
多端入口设计
每个端点都有独立的入口文件和初始化流程:
前台入口 (index.php)
- 处理语言前缀解析和路由分发
- 支持 JSON 和 HTML 双模式响应
- 统一的异常处理和错误渲染
后台入口 (admin/index.php)
- 管理员权限验证和工作区隔离
- 审计日志记录和 AI 创作工具栏注入
- 后台专属的错误处理机制
API入口 (api/index.php)
- RESTful API 服务提供
- 统一的 API 响应格式和错误码
- 请求限流和安全防护
章节来源
- index.php:1-126
- admin/index.php:1-102
- api/index.php:1-73
核心组件
- 路由与调度:统一入口解析语言前缀与 route 字符串,交由 DelegatingRouter 分派到具体控制器
- 容器与服务:DI 容器单例,Facade 门面简化调用;按模块组织 Service/Model/Controller
- ORM 与数据访问:统一 DB 配置与连接,模型支持字段映射、多语言、附件与列表预热
- 中间件与安全:CSRF、权限、限流、安全头、全局异常处理与 JSON/HTML 双模式响应
- 插件机制:支付、物流、社交登录等以 Provider/Service 形式接入,通过 manifest 声明
- AI 能力:提示词工程、图像尺寸策略、批量生成与翻译,配置集中管理
章节来源
- index.php:1-126
- core/bootstrap.php:1-180
- config/ai.php:1-177
架构总览
- 请求进入对应端点的 index.php,完成环境检测、未安装跳转、常量定义、自动加载、容器与 Request 绑定
- 各端 Init 启动后执行路由分发,返回 Response 或抛出异常由统一处理器输出
- 控制器调用对应 Service,Service 组合 Model/ORM 与外部插件(如支付)
- 模板渲染与静态资源由主题与 CDN/存储驱动共同完成
sequenceDiagram
participant U as "浏览器/客户端"
participant R as "端点入口 index.php"
participant B as "引导 bootstrap.php"
participant RT as "路由 Route"
participant C as "控制器 Controller"
participant S as "服务 Service"
participant DB as "数据库"
U->>R : HTTP 请求
R->>B : 初始化环境与容器
B-->>R : 就绪
R->>RT : 解析并分发
RT->>C : 调用控制器方法
C->>S : 执行业务逻辑
S->>DB : 读写数据
DB-->>S : 结果集
S-->>C : 业务结果
C-->>U : 视图/JSON 响应
图表来源
- index.php:1-126
- core/bootstrap.php:1-180
详细组件分析
多端基础控制器与职责
- 前台 BaseController:负责页面渲染、会话、语言与通用参数,支持会员中心导航
- 后台 BaseController:权限校验、工作区隔离、审计日志、AI 创作工具栏注入
- API BaseController:鉴权、限流、统一响应格式、会员中心导航
classDiagram
class Front_BaseController {
+render()
+auth()
+lang()
+respond()
+buildLinkUserCenter()
}
class Admin_BaseController {
+checkPermission()
+auditLog()
+workspace()
+injectAiToolbar()
+layoutVars()
+respondDeleteResult()
}
class Api_BaseController {
+authenticate()
+throttle()
+jsonResponse()
+buildLinkUserCenter()
}
章节来源
- front/controller/BaseController.php:1-134
- admin/controller/BaseController.php:1-371
- api/controller/BaseController.php:1-62
模块化架构与扩展机制
DouPHP 采用高度模块化的设计,支持40+官方模块按需安装和扩展:
模块类型
- 栏目模块:带分类树,有分类列表页 + 详情页(product、article、doc、course等)
- 简单模块:无分类树,单一实体或业务功能(order、user、comment、book等)
模块关联标记
link_user_center:接入会员中心link_work_center:接入工作人员端link_ai:接入AI能力link_order_item:可下单购买
章节来源
- config/module.php:1-132
AI 创作与配置
DouPHP 内置强大的 AI 创作能力,支持多种任务形态:
AI 功能特性
- 提示词工程:system/instruction/labels/banner_styles 等集中配置
- 图像尺寸策略:按模型族与协议默认值归一化,支持范围与预设
- 任务形态:辅助撰写、润色、重写、翻译、批量生成与表单填充
- GEO 优化:自动生成 llms.txt(AI 站点地图)与 Schema 结构化数据
flowchart TD
Inp["输入:站点信息+表单快照"] --> Sel["选择任务类型<br/>assist/polish/rewrite/translate/batch/fill"]
Sel --> Build["构建提示词<br/>注入 labels/instruction"]
Build --> Call["调用模型文本/图像"]
Call --> Out["输出:文案/图片/结构化字段"]
图表来源
- config/ai.php:1-177
章节来源
- config/ai.php:1-177
安全机制与防护
系统提供全面的安全防护机制:
安全防护特性
- 可信代理:支持反向代理 IP 白名单配置
- Host 验证:可信 Host 白名单,防止 Host 头注入
- 安全响应头:X-Frame-Options、X-Content-Type-Options、Referrer-Policy、Permissions-Policy、HSTS
- 会话硬化:HttpOnly、Secure、SameSite、严格模式
- 限流保护:定向限流,防止暴力攻击
章节来源
- config/security.php:1-88
支付插件体系
系统支持多种支付方式的插件化接入:
支持的支付方式
- 微信支付、支付宝、PayPal、连连支付
- 银行转账、货到付款、离线支付
- 余额支付、Square、Stripe 等
插件架构
- 统一的 Provider/Service 接口
- manifest 配置文件声明能力
- 后台可视化配置管理
章节来源
- plugin/wxpay/WxpayProvider.php
- plugin/alipay/AlipayProvider.php
依赖关系分析
- 入口与引导:各端 index.php 依赖 bootstrap.php 完成环境、常量、自动加载与容器初始化
- 配置依赖:config/config.php 提供数据库与路径常量;config/module.php 声明模块集合与可见性
- 三端控制器均依赖各自 service 层,service 层再依赖 ORM/DB 与插件
- 插件通过 Provider/Service 解耦,避免对核心代码的侵入
graph TB
X["各端 index.php"] --> Y["bootstrap.php"]
Y --> Z["config/config.php"]
Y --> M["config/module.php"]
X --> R["路由分发"]
R --> F["front/controller/*"]
R --> A["admin/controller/*"]
R --> AP["api/controller/*"]
F --> FS["front/service/*"]
A --> AS["admin/service/*"]
AP --> APS["api/service/*"]
FS --> DB["ORM/DB"]
AS --> DB
APS --> DB
PS["plugin/*"] -.-> FS
PS -.-> AS
PS -.-> APS
图表来源
- index.php:1-126
- core/bootstrap.php:1-180
- config/config.php:1-53
- config/module.php:1-132
章节来源
- index.php:1-126
- core/bootstrap.php:1-180
- config/config.php:1-53
- config/module.php:1-132
性能与扩展性
- 列表预热:模型支持 prefetchers,批量预热 URL、语言与附件,减少 N+1 查询
- 缓存与存储:Storage 抽象统一本地/云存储,降低 IO 成本
- 路由与中间件:轻量路由与可插拔中间件,按需启用 CSRF、限流、权限
- 插件化:支付、物流、社交登录等以插件形式扩展,不影响核心稳定性
- 多语言与模板:语言包与主题分离,便于国际化与 UI 定制
- 异步处理:支持队列任务和事件监听,提升系统响应性能
故障排查指南
- 未安装跳转:当 storage/install.lock 不存在时,自动跳转到安装程序
- 全局异常处理:根据 site.debug 与请求类型输出 HTML 调试页或 JSON 错误
- 常见错误定位:查看错误日志与异常堆栈,结合模块路由与控制器逐步定位
- 模块问题排查:检查 config/module.php 中的模块状态和依赖关系
- AI 功能调试:查看 AI 配置和提示词设置,确认模型连接状态
章节来源
- core/bootstrap.php:42-57
- index.php:46-75
结论
DouPHP 以清晰的 MVC 分层、模块化与插件化架构,提供了从内容管理到电商交易、从用户运营到 AI 创作的完整能力。其多端应用根目录设计确保了良好的代码组织和维护性,而丰富的模块化和插件机制则为业务扩展提供了无限可能。系统的三端独立架构(前台、后台、API)既保证了各端点的专注性和独立性,又通过共享核心实现了代码复用和维护便利,使其适用于企业官网、电商平台与内容管理等多种场景。
附录:快速开始
环境要求
- PHP:5.6 – 8.x(建议 PHP 8.x)
- 数据库:MySQL 5.7+ 或兼容数据库
- Web 服务器:Apache/Nginx,开启 URL 重写
- 必需扩展:GD(图片处理)、MySQL(PDO/mysqli)、OpenSSL(支付与第三方登录)
安装步骤
- 下载源码:从 GitHub 或官方网站获取最新版本的 DouPHP
- 部署文件:将源码上传至 Web 服务器的根目录
- 访问安装:在浏览器中访问站点根目录,系统将自动跳转到安装向导
- 配置数据库:填写数据库主机、用户名、密码和表前缀
- 设置管理员:创建管理员账号和密码
- 完成安装:安装完成后会生成 storage/install.lock 文件
基本配置
- 数据库配置:编辑
config/config.php文件中的数据库连接信息 - 模块管理:通过后台「模块管理」界面启用或禁用功能模块
- 主题切换:在后台「主题管理」中选择合适的前台主题
- 插件配置:在后台「插件管理」中配置支付、物流等第三方服务
开发指南
- 新建模块:参考系统结构分析文档,在三端按约定创建 controller/service/model/route/request
- 模板开发:后台模板位于
admin/view/<模块名>/*.htm,前台模板位于theme/<主题名>/<模块名>.dwt - 编码规范:UTF-8 无 BOM、4 空格缩进、LF 换行,PHP 语法需兼容 5.6
章节来源
- README.md:28-52
- core/bootstrap.php:19-57
- config/config.php:15-53
- config/module.php:1-132