陀螺匠目录结构

5.1 项目根目录结构

复制代码
/gyro-craftsman-owen/

├── .trae/ # Trae IDE 配置目录

├── app/ # 应用程序核心代码

├── bootstrap/ # 引导文件

├── config/ # 配置文件

├── crmeb/ # 自定义工具库

├── database/ # 数据库相关

├── helper/ # 辅助工具

├── public/ # 公共资源文件

├── routes/ # 路由定义

├── storage/ # 存储文件

├── tests/ # 测试文件

├── vendor/ # Composer 依赖

├── .env # 环境变量

├── .env.example # 环境变量示例

├── composer.json # Composer 依赖配置

├── artisan # Laravel 命令行工具

└── phpunit.xml # PHPUnit 配置文件

5.2 app/ 目录结构

app/ 目录是应用程序的核心代码目录,包含了所有业务逻辑和功能实现。

复制代码
app/

├── Console/ # 控制台命令

│ └── Commands/ # 自定义命令

├── Exceptions/ # 异常处理

│ └── Handler.php # 异常处理器

├── Http/ # HTTP 相关代码

│ ├── Controller/ # 控制器

│ ├── Dao/ # 数据访问对象

│ ├── Middleware/ # 中间件

│ ├── Model/ # 数据模型

│ ├── Requests/ # 请求验证

│ └── Service/ # 业务服务

├── Jobs/ # 队列任务

├── Listeners/ # 事件监听器

├── Providers/ # 服务提供者

├── Task/ # 任务处理

├── Constants/ # 常量定义

└── Traits/ # 可复用特性

5.3 app/Http/Controller/ 目录结构

控制器目录采用模块化组织,按功能模块划分。

复制代码
Controller/

├── AdminApi/ # 后台 API 控制器

│ ├── Auth/ # 认证模块

│ │ └── AuthController.php

│ ├── User/ # 用户模块

│ │ ├── UserController.php

│ │ └── UserInfoController.php

│ ├── Chat/ # 聊天模块

│ │ ├── ApplicationController.php

│ │ ├── HistoryController.php

│ │ └── RecordController.php

│ ├── Approve/ # 审批模块

│ │ ├── ApproveController.php

│ │ └── ApproveApplyController.php

│ ├── Attendance/ # 考勤模块

│ │ ├── AttendanceController.php

│ │ └── ClockController.php

│ ├── Assess/ # 考核模块

│ │ └── AssessController.php

│ └── System/ # 系统模块

│ ├── ConfigController.php

│ └── LogController.php

├── UniApi/ # 统一 API 控制器

│ └── ...

└── Install.php # 安装控制器

5.4 app/Http/Dao/ 目录结构

数据访问对象目录按模块组织,封装数据库操作逻辑。

复制代码
Dao/

├── Admin/ # 管理员数据访问

│ ├── AdminDao.php

│ └── AdminInfoDao.php

├── Auth/ # 认证数据访问

│ ├── RoleDao.php

│ └── UserRoleDao.php

├── User/ # 用户数据访问

│ ├── UserDao.php

│ └── UserTokenDao.php

├── Chat/ # 聊天数据访问

│ ├── ApplicationDao.php

│ ├── HistoryDao.php

│ ├── ModelsDao.php

│ └── RecordDao.php

├── Approve/ # 审批数据访问

│ ├── ApproveDao.php

│ ├── ApproveApplyDao.php

│ └── ApproveFormDao.php

├── Attendance/ # 考勤数据访问

│ ├── AttendanceGroupDao.php

│ └── ClockRecordDao.php

├── Assess/ # 考核数据访问

│ └── AssessDao.php

├── Company/ # 公司数据访问

│ └── CompanyDao.php

├── Config/ # 配置数据访问

│ ├── ConfigDao.php

│ └── BackupDao.php

├── Finance/ # 财务数据访问

│ ├── BillDao.php

│ └── PaytypeDao.php

├── Message/ # 消息数据访问

│ └── MessageDao.php

└── Work/ # 工作数据访问

├── WorkLabelDao.php

├── WorkClientDao.php

└── WorkMemberDao.php

5.5 app/Http/Model/ 目录结构

数据模型目录按功能模块组织,定义数据表结构。

复制代码
Model/

├── Admin/ # 管理员模型

│ ├── Admin.php

│ └── AdminInfo.php

├── Auth/ # 认证授权模型

│ ├── Role.php

│ └── Permission.php

├── User/ # 用户模型

│ ├── User.php

│ └── UserToken.php

├── Chat/ # 聊天模型

│ ├── Application.php

│ ├── History.php

│ ├── Models.php

│ └── Record.php

├── Approve/ # 审批模型

│ ├── Approve.php

│ ├── ApproveApply.php

│ └── ApproveForm.php

├── Attendance/ # 考勤模型

│ ├── AttendanceGroup.php

│ ├── AttendanceGroupMember.php

│ └── ClockRecord.php

├── Assess/ # 考核模型

│ ├── Assess.php

│ ├── AssessSpace.php

│ └── AssessTarget.php

├── Company/ # 公司模型

│ └── Company.php

├── Finance/ # 财务模型

│ └── Bill.php

├── Message/ # 消息模型

│ └── Message.php

└── Work/ # 工作模型

├── WorkClient.php

├── WorkLabel.php

└── WorkMember.php

5.6 app/Http/Service/ 目录结构

业务服务目录按模块组织,实现核心业务逻辑。

复制代码
Service/

├── Admin/ # 管理员服务

│ ├── AdminService.php

│ └── AdminInfoService.php

├── Auth/ # 认证服务

│ ├── AuthService.php

│ └── RoleService.php

├── User/ # 用户服务

│ ├── UserService.php

│ └── UserTokenService.php

├── Chat/ # 聊天服务

│ ├── ApplicationService.php

│ ├── ChatService.php

│ ├── HistoryService.php

│ └── RecordService.php

├── Approve/ # 审批服务

│ ├── ApproveService.php

│ └── ApproveApplyService.php

├── Attendance/ # 考勤服务

│ ├── AttendanceService.php

│ └── ClockService.php

├── Assess/ # 考核服务

│ └── AssessService.php

├── Company/ # 公司服务

│ └── CompanyService.php

├── Config/ # 配置服务

│ └── ConfigService.php

├── Message/ # 消息服务

│ └── MessageService.php

└── Work/ # 工作服务

└── WorkService.php

5.7 app/Http/Middleware/ 目录结构

中间件目录包含请求过滤和处理逻辑。

复制代码
Middleware/

├── Auth/ # 认证中间件

│ ├── AuthAdmin.php # 后台认证中间件

│ ├── AuthUser.php # 用户认证中间件

│ └── AuthCrud.php # CRUD 认证中间件

├── Language/ # 语言中间件

│ └── Language.php # 语言切换中间件

├── CORS/ # 跨域中间件

│ └── Cors.php

└── RateLimit/ # 限流中间件

└── ApiRateLimiter.php

5.8 app/Constants/ 目录结构

常量目录按功能模块组织,定义系统常量。

复制代码
Constants/

├── System/ # 系统常量

│ └── ConfigEnum.php # 配置常量

├── Work/ # 工作常量

│ ├── MediaEnum.php # 媒体常量

│ ├── LabelEnum.php # 标签常量

│ └── StatusEnum.php # 状态常量

├── ApproveEnum.php # 审批常量

├── AssessEnum.php # 评估常量

├── AttachEnum.php # 附件常量

├── CacheEnum.php # 缓存常量

├── ClientEnum.php # 客户常量

├── CompanyEnum.php # 公司常量

├── DailyEnum.php # 日报常量

├── MenuEnum.php # 菜单常量

└── UserEnum.php # 用户常量

5.9 config/ 目录结构

配置文件目录包含系统所有配置项。

复制代码
config/

├── app.php # 应用配置

├── auth.php # 认证配置

├── cache.php # 缓存配置

├── database.php # 数据库配置

├── filesystems.php # 文件系统配置

├── hashing.php # 哈希配置

├── jwt.php # JWT 配置

├── laravels.php # LaravelS 配置

├── lauthz.php # Casbin 权限配置

├── logging.php # 日志配置

├── mail.php # 邮件配置

├── queue.php # 队列配置

├── services.php # 服务配置

├── session.php # Session 配置

└── upload.php # 上传配置

5.10 routes/ 目录结构

路由目录定义系统所有路由。

复制代码
routes/

├── web.php # Web 路由

├── api.php # API 路由

├── console.php # 控制台路由

├── channels.php # 广播通道

└── websocket.php # WebSocket 路由

5.11 database/ 目录结构

数据库目录包含迁移、种子和工厂文件。

复制代码
database/

├── factories/ # 模型工厂

│ ├── UserFactory.php

│ └── ...

├── migrations/ # 数据库迁移

│ ├── 2024_01_01_000001_create_users_table.php

│ ├── 2024_01_01_000002_create_admins_table.php

│ └── ...

├── seeders/ # 数据库种子

│ ├── DatabaseSeeder.php

│ └── ...

└── schema/ # 数据库 schema

└── ...

5.12 crmeb/ 目录结构

自定义工具库目录包含项目特定的工具类和服务。

复制代码
crmeb/

├── basic/ # 基础类

│ └── BaseService.php

├── exceptions/ # 异常类

│ └── BusinessException.php

├── services/ # 服务类

│ ├── UploadService.php

│ └── CacheService.php

├── socket/ # Socket 类

│ └── WebSocket.php

├── traits/ # 特质类

│ └── Singleton.php

└── utils/ # 工具类

├── Helper.php

└── Validator.php

5.13 public/ 目录结构

公共资源目录包含前端文件和静态资源。

复制代码
public/

├── admin/ # 后台前端文件

│ ├── index.html

│ ├── static/

│ │ ├── css/

│ │ ├── js/

│ │ └── images/

│ └── ...

├── chat/ # 聊天前端文件

│ └── ...

├── install/ # 安装程序文件

│ └── ...

├── favicon.ico # 网站图标

└── index.php # 入口文件

5.14 开发指南

5.14.1 新增模块流程

  1. 创建目录结构
bash 复制代码
# 在 Controller 下创建模块目录

mkdir -p app/Http/Controller/AdminApi/NewModule/



# 在 Service 下创建模块目录

mkdir -p app/Http/Service/NewModule/



# 在 Dao 下创建模块目录

mkdir -p app/Http/Dao/NewModule/



# 在 Model 下创建模块目录

mkdir -p app/Http/Model/NewModule/
  1. 创建核心文件
  • 创建控制器类

  • 创建服务类

  • 创建数据访问类

  • 创建模型类

  • 创建请求验证类

  1. 配置路由
  • 在控制器中添加路由属性

  • 配置中间件

  1. 创建数据库迁移
bash 复制代码
php artisan make:migration create_new_module_table
  1. 测试验证
bash 复制代码
php artisan route:list | grep new_module

5.14.2 代码组织原则

  • 单一职责原则:每个类只负责一项功能

  • 依赖注入:通过构造函数注入依赖

  • 接口隔离:使用接口定义行为

  • 开闭原则:对扩展开放,对修改关闭

5.14.3 目录命名规范

  • 目录名使用小写字母

  • 多个单词使用下划线分隔

  • 按功能模块组织相关文件

  • 保持目录结构扁平化

5.15 相关文档

相关推荐
anew___6 天前
二区OA是什么意思?
oa
大龄码农有梦想16 天前
仿钉钉流程模型如何转换成 BPMN 2.0?
工作流引擎·流程引擎·bpmn.js·oa·流程审批·仿钉钉流程设计器·bpmn流程设计器
FIT2CLOUD飞致云22 天前
操作教程丨在千问办公中使用Cordys CRM Skills技能,落地AI CRM
ai·开源·crm·销售管理·cordys crm·千问办公
FIT2CLOUD飞致云1 个月前
移动端审批功能上线,导入功能持续增强,Cordys CRM发布v1.8.0版本
ai·开源·crm·销售管理·ai crm·cordys crm
Liquad Li2 个月前
Salesforce高级开发面试题
java·网络·面试·crm·salesforce
OA之道2 个月前
OA 实施教程|第10集:Windows/Linux/ 信创全平台 OA 安装部署 + 完整运维
低代码开发·工作流·oa·oa办公系统·oa实施
Odoo老杨2 个月前
如何直接在线定制修改 Odoo UI界面?
css·python·crm·odoo·erp·中小企业数字化
RuoyiOffice3 个月前
从 0 到 1 搭建 RuoyiOffice:30 分钟跑通后端+前端+移动端
前端·spring boot·uni-app·开源·oa·ruoyioffice·hrm
不剪发的Tony老师3 个月前
iDempiere:一款免费开源的企业级ERP管理平台
crm·erp·scm
OA之道3 个月前
OA 实施教程 | 第7集:详解数据字典与流水号配置,规范表单录入与单据编号
工作流·oa·oa办公系统·oa实施