📁 目录结构

ThinkAdmin 当前聚合仓库采用应用目录、配置目录、公共入口、插件目录和运行目录分层组织。后台与微信等模块由 Composer 插件复制或映射到应用命名空间。

需要先区分两个视角:ThinkAdminDeveloper 是开发聚合仓库,根 composer.json 使用 repositories.type=path 指向 plugin/*,方便统一开发、测试和发布;普通项目通过 Composer 安装发布后的独立包,插件源码通常位于 vendor,再由安装器发布到 apppublicdatabase/migrations 等目录。

🚀 主要特点

  • 多应用支持: 支持多个独立的应用目录
  • 插件扩展: 支持插件开发和集成
  • 自动加载: 支持多种文件的自动加载
  • 模块化设计: 采用模块化的目录设计
  • 开发友好: 提供友好的开发环境
  • 灵活配置: 支持灵活的配置管理

📋 目录说明

🧩 开发总库与发布包

  • 开发聚合仓库: plugin/* 是各 Composer 包的源码目录,根项目通过 path 仓库把这些包连到一起,用于统一开发和联调。
  • 发布安装项目: 用户项目不需要保留 plugin/* 源码目录,通常通过 composer require zoujingli/... 安装到 vendor
  • 发布产物目录: app/adminapp/wechatpublic/staticdatabase/migrations 等可能由插件安装器复制生成,属于受插件托管的项目文件。
  • 自定义边界: 通用修复应回到对应插件源码包;项目级定制优先放在可保留入口,例如 public/static/extra、自定义应用目录或本地化插件。

📱 应用目录

  • app: 应用基础目录,包含所有应用模块
  • admin: 后台应用目录,由 think-plugs-adminsrc 复制到 app/admin
    • controller/: 控制器目录,包含所有后台管理控制器
    • model/: 数据模型目录,包含系统数据模型
    • view/: 视图模板目录,包含后台页面模板
    • lang/: 语言包目录,包含多语言文件
    • route/: 路由配置目录
    • Service.php: 服务注册文件,用于注册插件菜单等
  • index: 默认应用入口,用于前端访问
  • wechat: 微信应用目录,由 think-plugs-wechatsrc 复制到 app/wechat
    • controller/: 微信相关控制器
    • model/: 微信数据模型
    • service/: 微信服务类
    • command/: 微信命令行工具
    • Service.php: 微信服务注册文件

⚙️ 配置目录

  • config: 全局配置目录
    • app.php: 应用配置(运行模式、时区等)
    • database.php: 数据库连接配置
    • cache.php: 缓存配置
    • route.php: 路由配置
    • lang.php: 多语言配置
    • log.php: 日志配置
    • view.php: 视图配置
    • cookie.php: Cookie 配置
    • phinx.php: 数据库迁移配置

📁 资源目录

  • public: 公共资源目录,Web 服务器根目录
  • static: 静态资源目录
    • extra/: 自定义扩展目录(不会被插件更新覆盖)
    • plugs/: 后台应用插件目录
    • theme/: 后台应用主题目录
  • upload: 上传文件存储目录
  • index.php: 网站访问入口文件

⚙️ 开发指南

📱 应用开发

  • 创建应用: 在 app 目录下创建子应用目录
  • 应用示例: 如 app/apiapp/dataapp/userapp/shop
  • 独立开发: 每个应用可以独立开发和维护

🔌 插件开发

  • 插件文档: 阅读 插件开发文档
  • 插件目录: Composer 正常安装时位于 vendor,当前开发聚合仓库通过 repositories.type=path 指向 plugin/* 本地目录
  • 服务注册: 通过 Service 类进行服务注册

📦 文件加载

  • 全局文件: think\admin\Library::register() 会扫描并加载 app 目录两层内的 sys.php
  • 应用文件: 当前应用解析完成后会加载应用级配置、事件、中间件和公共函数文件
  • 插件服务: 通过 Composer extra.think.services 加载插件服务类

🔧 自动加载支持

🌐 全局文件

  • sys.php: 全局系统文件,可用于注册命令、路由或启动回调等
    • 位置:app/sys.php 或各应用目录下的 sys.php
    • 加载方式:ThinkAdmin 启动时扫描 app 目录两层内的 sys.php
  • 配置文件: config/ 目录由 ThinkPHP 加载;应用级配置在当前应用解析后加载

📱 应用文件

每个应用目录下可以包含以下自动加载文件:

  • config/-.php: 应用配置文件(如 config/app.php
  • lang/-.php: 应用语言包(如 app/admin/lang/zh-cn.php
    • ThinkAdmin 权限中间件还会按当前语言加载 think-library/src/lang/ 和项目根 lang/ 下的全局语言包
  • event.php: 事件配置文件,用于注册事件监听器
  • common.php: 公共函数文件,定义应用级公共函数
  • provider.php: 服务提供者文件,注册服务容器
  • middleware.php: 中间件配置文件,定义应用中间件

🔌 插件文件

  • Service.php: 插件服务注册文件
    • 位置:通常为插件 src/Service.php 或应用 Service.php
    • 用途:注册插件菜单、记录插件信息、注册服务或事件等
    • 加载方式:需要在插件 composer.jsonextra.think.services 中声明
  • 数据库迁移: 插件 stc/database/ 目录下的迁移文件会自动复制到 database/migrations/
  • 静态资源: 插件 stc/public/ 目录下的文件会自动复制到 public/ 目录
.
├─ app                              应用基础目录
│  ├─ admin                         后台应用目录( 不建议修改,可使用插件更新 )
│  │  ├─ controller                 应用控制器目录
│  │  │  ├─ api                      API 接口控制器
│  │  │  ├─ Index.php                后台首页控制器
│  │  │  ├─ Login.php                登录控制器
│  │  │  ├─ User.php                 用户管理控制器
│  │  │  ├─ Menu.php                 菜单管理控制器
│  │  │  ├─ Auth.php                 权限管理控制器
│  │  │  ├─ Config.php                系统配置控制器
│  │  │  ├─ Queue.php                任务管理控制器
│  │  │  ├─ File.php                 文件管理控制器
│  │  │  ├─ Oplog.php                操作日志控制器
│  │  │  └─ Base.php                 数据字典控制器
│  │  ├─ lang                        应用语言包目录
│  │  ├─ route                       应用路由配置
│  │  ├─ view                        应用视图目录
│  │  └─ Service.php                 服务注册文件
│  ├─ index                         默认应用入口
│  │  └─ controller                 控制器目录
│  └─ wechat                        微信应用目录( 不建议修改,可使用插件更新 )
│     ├─ command                    应用指令目录
│     ├─ controller                 应用控制器目录
│     ├─ model                      数据模型目录
│     ├─ service                    应用服务目录
│     ├─ lang                       应用语言包目录
│     ├─ view                       应用视图目录
│     └─ Service.php                服务注册文件
├─ config                           全局配置目录
│  ├─ app.php                       全局应用配置
│  ├─ cache.php                     全局缓存配置 
│  ├─ cookie.php                    全局 Cookie 配置
│  ├─ database.php                  数据库连接配置
│  ├─ phinx.php                     数据库迁移配置
│  ├─ lang.php                      系统多语言配置
│  ├─ log.php                       全局日志配置
│  ├─ route.php                     路由和URL配置
│  └─ view.php                      视图模板配置 
├─ public                           网站开放目录
│  ├─ static                        静态资源目录
│  │  ├─ extra                      自定义扩展目录
│  │  ├─ plugs                      后台应用插件( 不建议修改,可使用插件更新 )
│  │  └─ theme                      后台应用主题( 不建议修改,可使用插件更新 )
│  ├─ upload                        上传存储目录
│  ├─ index.php                     网站访问入口( 不建议修改,可使用插件更新 )
│  ├─ router.php                    网站测试入口( 不建议修改,可使用插件更新 )
├─ runtime                          运行环境目录,需要可写权限
│  ├─ admin                         系统应用运行目录
│  ├─ cache                         系统默认缓存目录
│  ├─ log                           系统运行日志目录
│  ├─ session                       Session 会话缓存
│  └─ wechat                        微信运行目录缓存
├─ safefile                         安全文件上传目录,需要读写权限
└─ vendor                           Composer 安装的第三方类库目录
最近更新:
Contributors: 邹景立, Anyon