204 lines
29 KiB
JavaScript
204 lines
29 KiB
JavaScript
import{_ as n,o as a,c as p,a2 as e}from"./chunks/framework.B-QBKwc1.js";const u=JSON.parse('{"title":"目录结构","description":"+ 保持一致性:目录结构一旦确定,应保持一致性,避免随意更改。","frontmatter":{},"headers":[],"relativePath":"zh/directory.md","filePath":"zh/directory.md"}'),l={name:"zh/directory.md"};function t(i,s,c,o,r,d){return a(),p("div",null,[...s[0]||(s[0]=[e(`<h1 id="_1-3-目录结构" tabindex="-1">1.3 目录结构 <a class="header-anchor" href="#_1-3-目录结构" aria-label="Permalink to "1.3 目录结构""></a></h1><h2 id="目录说明" tabindex="-1">目录说明 <a class="header-anchor" href="#目录说明" aria-label="Permalink to "目录说明""></a></h2><p>在软件开发过程中,优秀的软件目录结构对于项目的组织、开发、维护和扩展至关重要,合理的目录结构能够显著提升开发效率和代码可维护性。</p><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes dracula-soft vitesse-light vp-code" tabindex="0"><code><span class="line"><span>1. 清晰的层次结构:按照功能模块划分目录,方便团队成员快速定位代码。</span></span>
|
||
<span class="line"><span>2. 模块化管理:通过多模块结构,实现功能模块的独立管理,提高系统的可维护性和扩展性。</span></span>
|
||
<span class="line"><span>3. 分层架构:Controller(HTTP)、Logic(业务)、Model(数据)分离,职责清晰。</span></span>
|
||
<span class="line"><span>4. 提升开发效率:清晰的目录结构和模块划分,减少查找代码的时间,提高开发效率。</span></span></code></pre></div><h2 id="项目根目录" tabindex="-1">项目根目录 <a class="header-anchor" href="#项目根目录" aria-label="Permalink to "项目根目录""></a></h2><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes dracula-soft vitesse-light vp-code" tabindex="0"><code><span class="line"><span>├── app/ // 后端源码</span></span>
|
||
<span class="line"><span>├── ui/ // 前端源码(Vue3 + ElementPlus)</span></span>
|
||
<span class="line"><span>├── config/ // 配置文件</span></span>
|
||
<span class="line"><span>├── document/ // 项目文档(SQL脚本、开发手册等)</span></span>
|
||
<span class="line"><span>├── extend/ // 扩展类库</span></span>
|
||
<span class="line"><span>├── public/ // 公共资源(入口文件、上传目录)</span></span>
|
||
<span class="line"><span>├── route/ // 路由定义</span></span>
|
||
<span class="line"><span>├── templates/ // 代码生成模板</span></span>
|
||
<span class="line"><span>├── vendor/ // Composer 依赖(不提交到版本控制)</span></span>
|
||
<span class="line"><span>├── runtime/ // 运行时缓存(不提交到版本控制)</span></span>
|
||
<span class="line"><span>├── .env.example // 环境变量模板</span></span>
|
||
<span class="line"><span>├── .env // 环境变量(不提交到版本控制)</span></span>
|
||
<span class="line"><span>├── composer.json // PHP 依赖清单</span></span>
|
||
<span class="line"><span>├── composer.lock // 依赖锁定文件</span></span>
|
||
<span class="line"><span>├── think // ThinkPHP 命令行入口</span></span>
|
||
<span class="line"><span>└── README.md // 项目说明</span></span></code></pre></div><h2 id="后端目录-app-" tabindex="-1">后端目录 (app/) <a class="header-anchor" href="#后端目录-app-" aria-label="Permalink to "后端目录 (app/)""></a></h2><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes dracula-soft vitesse-light vp-code" tabindex="0"><code><span class="line"><span>app/</span></span>
|
||
<span class="line"><span>├── BaseController.php // 控制器基类(统一响应、参数获取、通用CRUD)</span></span>
|
||
<span class="line"><span>├── BaseLogic.php // 逻辑基类(属性配置、生命周期钩子、横切处理)</span></span>
|
||
<span class="line"><span>├── BaseTenantLogic.php // 租户逻辑基类(继承BaseLogic,自动租户隔离)</span></span>
|
||
<span class="line"><span>├── BaseModel.php // 模型基类(软删除、审计字段自动写入)</span></span>
|
||
<span class="line"><span>├── ExceptionHandle.php // 统一异常处理(所有异常渲染为JSON)</span></span>
|
||
<span class="line"><span>├── common.php // 公共函数库(加密、文件处理、驼峰转换)</span></span>
|
||
<span class="line"><span>├── event.php // 事件定义</span></span>
|
||
<span class="line"><span>├── middleware.php // 全局中间件注册</span></span>
|
||
<span class="line"><span>├── attribute/ // PHP 8 注解</span></span>
|
||
<span class="line"><span>│ ├── Log.php // 操作日志注解(40种操作类型)</span></span>
|
||
<span class="line"><span>│ ├── Permission.php // 权限校验注解</span></span>
|
||
<span class="line"><span>│ └── DemoAllow.php // 演示环境放行注解</span></span>
|
||
<span class="line"><span>├── command/ // 命令行命令</span></span>
|
||
<span class="line"><span>│ ├── JobRunCommand.php // 定时任务一次性执行(配合系统 cron)</span></span>
|
||
<span class="line"><span>│ ├── JobDaemonCommand.php // 定时任务常驻进程(配合 supervisor)</span></span>
|
||
<span class="line"><span>│ ├── GeneratorCommand.php // 代码生成器 CLI</span></span>
|
||
<span class="line"><span>│ └── DbMigrateCommand.php // 数据库迁移工具</span></span>
|
||
<span class="line"><span>├── controller/ // 控制器层(HTTP 入口)</span></span>
|
||
<span class="line"><span>│ ├── UserController.php // 用户管理</span></span>
|
||
<span class="line"><span>│ ├── RoleController.php // 角色管理</span></span>
|
||
<span class="line"><span>│ ├── MenuController.php // 菜单管理</span></span>
|
||
<span class="line"><span>│ ├── DeptController.php // 部门管理</span></span>
|
||
<span class="line"><span>│ ├── PositionController.php // 岗位管理</span></span>
|
||
<span class="line"><span>│ ├── LevelController.php // 职级管理</span></span>
|
||
<span class="line"><span>│ ├── ArticleController.php // 文章管理</span></span>
|
||
<span class="line"><span>│ ├── DictController.php // 字典管理</span></span>
|
||
<span class="line"><span>│ ├── ConfigController.php // 配置管理</span></span>
|
||
<span class="line"><span>│ ├── JobController.php // 定时任务</span></span>
|
||
<span class="line"><span>│ ├── TenantController.php // 租户管理</span></span>
|
||
<span class="line"><span>│ ├── GeneratorController.php // 代码生成器</span></span>
|
||
<span class="line"><span>│ └── ... // 其他模块</span></span>
|
||
<span class="line"><span>├── logic/ // 业务逻辑层</span></span>
|
||
<span class="line"><span>│ ├── UserLogic.php // 用户业务逻辑</span></span>
|
||
<span class="line"><span>│ ├── RoleLogic.php // 角色业务逻辑</span></span>
|
||
<span class="line"><span>│ ├── ArticleLogic.php // 文章业务逻辑</span></span>
|
||
<span class="line"><span>│ ├── GeneratorLogic.php // 代码生成逻辑</span></span>
|
||
<span class="line"><span>│ ├── LoginLogic.php // 登录业务逻辑</span></span>
|
||
<span class="line"><span>│ ├── LoginLogLogic.php // 登录日志逻辑</span></span>
|
||
<span class="line"><span>│ ├── OperLogLogic.php // 操作日志逻辑</span></span>
|
||
<span class="line"><span>│ ├── IndexLogic.php // 首页/仪表盘逻辑</span></span>
|
||
<span class="line"><span>│ └── ... // 其他模块</span></span>
|
||
<span class="line"><span>├── model/ // 数据模型层</span></span>
|
||
<span class="line"><span>│ ├── User.php // 用户模型</span></span>
|
||
<span class="line"><span>│ ├── Role.php // 角色模型</span></span>
|
||
<span class="line"><span>│ ├── Menu.php // 菜单模型</span></span>
|
||
<span class="line"><span>│ ├── UserRole.php // 用户角色关联</span></span>
|
||
<span class="line"><span>│ ├── RoleMenu.php // 角色菜单关联</span></span>
|
||
<span class="line"><span>│ └── ... // 其他模型</span></span>
|
||
<span class="line"><span>├── validate/ // 验证器</span></span>
|
||
<span class="line"><span>│ ├── UserValidate.php // 用户验证</span></span>
|
||
<span class="line"><span>│ └── ... // 其他验证器</span></span>
|
||
<span class="line"><span>├── task/ // 定时任务处理器</span></span>
|
||
<span class="line"><span>│ ├── BaseTask.php // 任务处理器基类</span></span>
|
||
<span class="line"><span>│ ├── HelloWorldTask.php // 测试任务(验证 daemon 调度器)</span></span>
|
||
<span class="line"><span>│ └── SendSmsTask.php // 示例任务</span></span>
|
||
<span class="line"><span>└── service/ // 服务层(通用能力)</span></span>
|
||
<span class="line"><span> ├── JwtService.php // JWT 认证(登录/刷新/解析)</span></span>
|
||
<span class="line"><span> ├── PasswordService.php // 密码加密(bcrypt 双重加盐)</span></span>
|
||
<span class="line"><span> ├── DictService.php // 字典服务(两级缓存)</span></span>
|
||
<span class="line"><span> ├── ParamService.php // 系统参数服务</span></span>
|
||
<span class="line"><span> ├── CaptchaService.php // 验证码服务</span></span>
|
||
<span class="line"><span> ├── RequestInfoService.php // 请求信息解析</span></span>
|
||
<span class="line"><span> ├── AttributeService.php // 注解读取(反射+缓存)</span></span>
|
||
<span class="line"><span> ├── GeneratorService.php // 代码生成服务</span></span>
|
||
<span class="line"><span> ├── ExcelService.php // Excel 导入导出</span></span>
|
||
<span class="line"><span> ├── DbSchemaBuilder.php // 跨数据库 DDL 生成器</span></span>
|
||
<span class="line"><span> └── DbMigrateService.php // 跨数据库数据迁移</span></span></code></pre></div><h2 id="后端模块内部结构" tabindex="-1">后端模块内部结构 <a class="header-anchor" href="#后端模块内部结构" aria-label="Permalink to "后端模块内部结构""></a></h2><p>每个业务模块遵循统一的文件结构:</p><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes dracula-soft vitesse-light vp-code" tabindex="0"><code><span class="line"><span>app/controller/{Name}Controller.php // HTTP 入口(注解 + 异常处理)</span></span>
|
||
<span class="line"><span>app/logic/{Name}Logic.php // 业务逻辑(属性配置 + 钩子)</span></span>
|
||
<span class="line"><span>app/model/{Name}.php // 数据模型(表映射)</span></span>
|
||
<span class="line"><span>app/validate/{Name}Validate.php // 验证器(字段校验规则)</span></span></code></pre></div><table tabindex="0"><thead><tr><th>文件</th><th>职责</th><th>基类</th></tr></thead><tbody><tr><td>Controller</td><td>接收请求、调用 Logic、返回响应</td><td>BaseController</td></tr><tr><td>Logic</td><td>业务逻辑、属性配置、钩子处理</td><td>BaseLogic / BaseTenantLogic</td></tr><tr><td>Model</td><td>数据库表映射、关联关系</td><td>BaseModel</td></tr><tr><td>Validate</td><td>参数校验规则</td><td>ThinkPHP Validate</td></tr></tbody></table><h2 id="配置目录-config-" tabindex="-1">配置目录 (config/) <a class="header-anchor" href="#配置目录-config-" aria-label="Permalink to "配置目录 (config/)""></a></h2><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes dracula-soft vitesse-light vp-code" tabindex="0"><code><span class="line"><span>config/</span></span>
|
||
<span class="line"><span>├── api.php // API 配置(驼峰转换开关)</span></span>
|
||
<span class="line"><span>├── app.php // 应用配置(时区/调试模式/演示模式)</span></span>
|
||
<span class="line"><span>├── cache.php // 缓存配置(支持 file / redis)</span></span>
|
||
<span class="line"><span>├── console.php // 命令行配置</span></span>
|
||
<span class="line"><span>├── cookie.php // Cookie 配置</span></span>
|
||
<span class="line"><span>├── cors.php // 跨域配置(允许来源/方法/头)</span></span>
|
||
<span class="line"><span>├── database.php // 数据库配置(5种数据库)</span></span>
|
||
<span class="line"><span>├── file.php // 文件上传配置(目录/域名/大小限制)</span></span>
|
||
<span class="line"><span>├── filesystem.php // 文件系统配置</span></span>
|
||
<span class="line"><span>├── jwt.php // JWT 配置(密钥/有效期/算法)</span></span>
|
||
<span class="line"><span>├── lang.php // 多语言配置</span></span>
|
||
<span class="line"><span>├── log.php // 日志配置</span></span>
|
||
<span class="line"><span>├── middleware.php // 中间件排除列表</span></span>
|
||
<span class="line"><span>├── route.php // 路由配置</span></span>
|
||
<span class="line"><span>├── session.php // Session 配置</span></span>
|
||
<span class="line"><span>├── tenant.php // 多租户配置(默认租户ID)</span></span>
|
||
<span class="line"><span>├── trace.php // 调试追踪配置</span></span>
|
||
<span class="line"><span>└── view.php // 视图配置</span></span></code></pre></div><h2 id="扩展目录-extend-" tabindex="-1">扩展目录 (extend/) <a class="header-anchor" href="#扩展目录-extend-" aria-label="Permalink to "扩展目录 (extend/)""></a></h2><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes dracula-soft vitesse-light vp-code" tabindex="0"><code><span class="line"><span>extend/</span></span>
|
||
<span class="line"><span>├── jwt/</span></span>
|
||
<span class="line"><span>│ └── Jwt.php // JWT 工具类(签发/解析/刷新)</span></span>
|
||
<span class="line"><span>├── response/</span></span>
|
||
<span class="line"><span>│ └── Result.php // 统一响应类(code/ok/msg/data)</span></span>
|
||
<span class="line"><span>└── (无自定义扩展类)</span></span></code></pre></div><h2 id="代码生成模板-templates-" tabindex="-1">代码生成模板 (templates/) <a class="header-anchor" href="#代码生成模板-templates-" aria-label="Permalink to "代码生成模板 (templates/)""></a></h2><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes dracula-soft vitesse-light vp-code" tabindex="0"><code><span class="line"><span>templates/</span></span>
|
||
<span class="line"><span>├── controller.php.tpl // 控制器模板</span></span>
|
||
<span class="line"><span>├── logic.php.tpl // 业务逻辑模板</span></span>
|
||
<span class="line"><span>├── model.php.tpl // 模型模板</span></span>
|
||
<span class="line"><span>├── validate.php.tpl // 验证器模板</span></span>
|
||
<span class="line"><span>├── ui/ // 普通列表模板(前端文件)</span></span>
|
||
<span class="line"><span>│ ├── index.vue.tpl // 列表页模板</span></span>
|
||
<span class="line"><span>│ ├── edit.vue.tpl // 编辑弹窗模板</span></span>
|
||
<span class="line"><span>│ ├── detail.vue.tpl // 详情弹窗模板</span></span>
|
||
<span class="line"><span>│ ├── api.ts.tpl // API 接口模板</span></span>
|
||
<span class="line"><span>│ ├── columns.ts.tpl // 表格列定义模板</span></span>
|
||
<span class="line"><span>│ └── querySchemas.ts.tpl // 查询条件模板</span></span>
|
||
<span class="line"><span>└── ui2/ // 树形结构模板(前端文件)</span></span></code></pre></div><h2 id="前端目录-ui-src-" tabindex="-1">前端目录 (ui/src/) <a class="header-anchor" href="#前端目录-ui-src-" aria-label="Permalink to "前端目录 (ui/src/)""></a></h2><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes dracula-soft vitesse-light vp-code" tabindex="0"><code><span class="line"><span>ui/src/</span></span>
|
||
<span class="line"><span>├── main.ts // 入口文件(注册插件、挂载应用)</span></span>
|
||
<span class="line"><span>├── App.vue // 根组件</span></span>
|
||
<span class="line"><span>├── api/ // API 接口定义(按业务分组)</span></span>
|
||
<span class="line"><span>│ ├── system/ // 系统管理接口(user.ts / role.ts / menu.ts 等)</span></span>
|
||
<span class="line"><span>│ ├── content/ // 内容管理接口</span></span>
|
||
<span class="line"><span>│ ├── data/ // 数据管理接口</span></span>
|
||
<span class="line"><span>│ ├── monitor/ // 监控管理接口</span></span>
|
||
<span class="line"><span>│ ├── tool/ // 工具接口(example.ts / generator.ts)</span></span>
|
||
<span class="line"><span>│ ├── file/ // 文件接口</span></span>
|
||
<span class="line"><span>│ ├── region/ // 地区接口</span></span>
|
||
<span class="line"><span>│ ├── setting/ // 设置接口</span></span>
|
||
<span class="line"><span>│ ├── dashboard/ // 仪表盘接口</span></span>
|
||
<span class="line"><span>│ └── common/ // 公共接口(login / menu / user)</span></span>
|
||
<span class="line"><span>├── views/ // 页面视图(按业务分组)</span></span>
|
||
<span class="line"><span>│ ├── login/ // 登录页</span></span>
|
||
<span class="line"><span>│ ├── dashboard/ // 控制台</span></span>
|
||
<span class="line"><span>│ ├── system/ // 系统管理页面(user / role / menu / dept / position / level / tenant)</span></span>
|
||
<span class="line"><span>│ ├── content/ // 内容管理页面(article / category / link)</span></span>
|
||
<span class="line"><span>│ ├── data/ // 数据管理页面(dict / config / notice / param / city)</span></span>
|
||
<span class="line"><span>│ ├── monitor/ // 监控管理页面(job)</span></span>
|
||
<span class="line"><span>│ ├── file/ // 文件管理页面(fileTemplate)</span></span>
|
||
<span class="line"><span>│ ├── tool/ // 工具页面(generator / example)</span></span>
|
||
<span class="line"><span>│ ├── setting/ // 设置页面(profile / configWeb)</span></span>
|
||
<span class="line"><span>│ ├── iframe/ // 内嵌 iframe 页面</span></span>
|
||
<span class="line"><span>│ ├── redirect/ // 重定向页面</span></span>
|
||
<span class="line"><span>│ ├── exception/ // 异常页面(403 / 404 / 500)</span></span>
|
||
<span class="line"><span>│ └── about/ // 关于页面</span></span>
|
||
<span class="line"><span>├── components/ // 公共组件</span></span>
|
||
<span class="line"><span>│ ├── Table/ // BasicTable 表格组件</span></span>
|
||
<span class="line"><span>│ ├── Form/ // BasicForm 表单组件</span></span>
|
||
<span class="line"><span>│ ├── Modal/ // Modal 弹窗组件</span></span>
|
||
<span class="line"><span>│ ├── Page/ // PageWrapper 页面容器</span></span>
|
||
<span class="line"><span>│ ├── Upload/ // 文件上传组件</span></span>
|
||
<span class="line"><span>│ ├── Editor/ // 富文本编辑器(TinyMce)</span></span>
|
||
<span class="line"><span>│ ├── Cropper/ // 图片裁剪组件</span></span>
|
||
<span class="line"><span>│ ├── Qrcode/ // 二维码组件</span></span>
|
||
<span class="line"><span>│ ├── Excel/ // Excel 导入导出组件</span></span>
|
||
<span class="line"><span>│ ├── ChinaArea/ // 省市区联动组件</span></span>
|
||
<span class="line"><span>│ ├── Region/ // 区域选择组件</span></span>
|
||
<span class="line"><span>│ ├── Password/ // 密码强度组件</span></span>
|
||
<span class="line"><span>│ ├── Authority/ // 权限组件</span></span>
|
||
<span class="line"><span>│ ├── icon/ // 图标组件</span></span>
|
||
<span class="line"><span>│ └── ... // 其他组件</span></span>
|
||
<span class="line"><span>├── hooks/ // 组合式函数</span></span>
|
||
<span class="line"><span>│ ├── index.ts // hooks 统一导出</span></span>
|
||
<span class="line"><span>│ ├── useTime.ts // 时间 hook</span></span>
|
||
<span class="line"><span>│ ├── useDomWidth.ts // DOM 宽度 hook</span></span>
|
||
<span class="line"><span>│ ├── useOnline.ts // 网络状态 hook</span></span>
|
||
<span class="line"><span>│ ├── useBattery.ts // 电量 hook</span></span>
|
||
<span class="line"><span>│ ├── use-async.ts // 异步操作 hook</span></span>
|
||
<span class="line"><span>│ ├── core/ // 核心 hooks</span></span>
|
||
<span class="line"><span>│ ├── event/ // 事件 hooks</span></span>
|
||
<span class="line"><span>│ ├── setting/ // 配置 hooks</span></span>
|
||
<span class="line"><span>│ └── web/ // Web hooks(含权限判断)</span></span>
|
||
<span class="line"><span>├── store/ // Pinia 状态管理</span></span>
|
||
<span class="line"><span>│ └── modules/</span></span>
|
||
<span class="line"><span>│ ├── user.ts // 用户 Store(Token/用户信息/权限)</span></span>
|
||
<span class="line"><span>│ ├── asyncRoute.ts // 动态路由 Store(菜单/keep-alive)</span></span>
|
||
<span class="line"><span>│ ├── projectSetting.ts // 项目配置 Store</span></span>
|
||
<span class="line"><span>│ ├── tabsView.ts // 标签页 Store</span></span>
|
||
<span class="line"><span>│ ├── designSetting.ts // 设计/主题配置 Store</span></span>
|
||
<span class="line"><span>│ ├── lockscreen.ts // 锁屏 Store</span></span>
|
||
<span class="line"><span>│ └── ossConfig.ts // 云存储配置 Store</span></span>
|
||
<span class="line"><span>├── router/ // 路由配置</span></span>
|
||
<span class="line"><span>│ ├── index.ts // 路由实例</span></span>
|
||
<span class="line"><span>│ ├── base.ts // 静态路由(登录/404)</span></span>
|
||
<span class="line"><span>│ ├── generator-routers.ts // 动态路由生成(后端菜单→Vue Router)</span></span>
|
||
<span class="line"><span>│ ├── router-guards.ts // 路由守卫(登录校验/菜单加载)</span></span>
|
||
<span class="line"><span>│ └── router-icons.ts // 路由图标映射</span></span>
|
||
<span class="line"><span>├── utils/ // 工具函数</span></span>
|
||
<span class="line"><span>│ ├── http/ // HTTP 请求封装(Axios 拦截器)</span></span>
|
||
<span class="line"><span>│ └── Storage.ts // 本地存储封装</span></span>
|
||
<span class="line"><span>├── layout/ // 布局组件(侧边栏/顶栏/内容区)</span></span>
|
||
<span class="line"><span>├── plugins/ // 插件注册</span></span>
|
||
<span class="line"><span>├── settings/ // 项目配置(标题/主题/布局)</span></span>
|
||
<span class="line"><span>├── directives/ // 自定义指令(v-perm 权限指令)</span></span>
|
||
<span class="line"><span>├── styles/ // 全局样式(Tailwind CSS / 主题变量)</span></span>
|
||
<span class="line"><span>├── enums/ // 枚举定义(HTTP / 页面)</span></span>
|
||
<span class="line"><span>└── assets/ // 静态资源(图标/图片)</span></span></code></pre></div><h2 id="关键配置文件" tabindex="-1">关键配置文件 <a class="header-anchor" href="#关键配置文件" aria-label="Permalink to "关键配置文件""></a></h2><table tabindex="0"><thead><tr><th>文件</th><th>作用</th></tr></thead><tbody><tr><td><code>.env</code></td><td>数据库连接、JWT 密钥、文件上传路径等环境变量</td></tr><tr><td><code>config/database.php</code></td><td>数据库配置(支持 5 种数据库)</td></tr><tr><td><code>config/jwt.php</code></td><td>JWT 配置(密钥/有效期/算法)</td></tr><tr><td><code>config/file.php</code></td><td>文件上传配置(目录/域名/大小限制)</td></tr><tr><td><code>config/cors.php</code></td><td>跨域配置(允许来源/方法/头)</td></tr><tr><td><code>config/middleware.php</code></td><td>中间件排除列表</td></tr><tr><td><code>config/api.php</code></td><td>API 配置(驼峰/下划线转换开关)</td></tr><tr><td><code>config/cache.php</code></td><td>缓存配置(file/redis 驱动)</td></tr><tr><td><code>config/tenant.php</code></td><td>多租户配置(默认租户ID)</td></tr><tr><td><code>ui/.env.development</code></td><td>前端开发环境配置(API 代理地址)</td></tr><tr><td><code>ui/vite.config.ts</code></td><td>Vite 构建配置</td></tr><tr><td><code>ui/package.json</code></td><td>前端依赖和脚本命令</td></tr></tbody></table><div class="tip custom-block"><p class="custom-block-title">注意事项</p><ul><li>保持一致性:目录结构一旦确定,应保持一致性,避免随意更改。</li><li>合理划分模块:根据项目的实际需求,合理划分功能模块,避免过度模块化。</li><li>文档记录:在项目文档中详细说明目录结构和各模块的功能,便于新成员快速上手。</li><li>版本控制:使用 <code>Git</code> 等版本控制工具,并在 <code>.gitignore</code> 文件中配置不需要跟踪的目录和文件。</li></ul></div><h2 id="总结" tabindex="-1">总结 <a class="header-anchor" href="#总结" aria-label="Permalink to "总结""></a></h2><p>软件架构的目录结构是项目开发和维护的基础,直接影响到项目的可维护性、可扩展性和开发效率。采用分层的目录结构(后端 Controller → Logic → Model,前端 api → views → components),结合模块化管理,是一个有效的解决方案。通过合理规划和遵循最佳实践,可以确保项目的结构清晰、功能明确,为团队开发和长期维护打下坚实的基础。</p>`,25)])])}const m=n(l,[["render",t]]);export{u as __pageData,m as default};
|