ulthon_admin
欢迎 目录和文件规范 系统架构 命名规范 php-cs-fixer public/static目录规范 app/common目录规范 数据库规范 CURD 命令行 表结构 数据库迁移代码 最佳实践 数据库自动缓存 后台菜单导入导出 权限的用法 table数据表格 cols operat _if titleField field selectList valueParser trueHide fieldFormat templet defaultValue search相关 time defaultSearchValue defaultToolbar init formFullScreen toobar modifyReload 控制器 CURD方法 导出 控制器通用验证 dataBrage向js传递参数 组件控件 select 下拉菜单option拼接 lay-submit paste-text粘贴 multiple-columns editor data-upload上传 tag-input标签输入 property-input动态字段输入 data-date时间控件参数 table-data列表选择器 city-picker城市选择器 copy-text 全局监听组件 data-request data-open 内置定时器 并发模式 重置密码 系统配置 PHP助手函数 sysconfig JS助手函数 checkMobile empty open 弹框 叠加loading getDataBrage getQueryVariable 扩展机制 事件扩展 实现事件 执行事件 事件列表 AdminLayoutRequireAfter LoadMigrationFiles AdminLoginIndex AdminLoginForget AdminLoginType AdminMenuTab AdminLayoutRequireBefore 自动更新 性能优化 精简代码 关闭数据库日志驱动 皮肤 正常 科幻 其他 切换模块时直接切换内容 关闭上传文件注入检测 代码编译原理 接入workerman和命令参数 升级TP6.1 Request的默认过滤 异步引入全局script 线上安装脚本 兼容PHP8.1

common文件命名习惯

在我们使用thinkphp时,很少使用后缀命名,比如一个控制器我们会使用Index,而不是IndexController,一个模型会命名为User而不是UserModel,在我们这个后台中应当继续按照ThinkPHP的规范来.

但是我们在框架中在common目录下封装了一些类库,我们推荐在这个目录下的类库命名,都需要带着后缀.

这与ThinkPHP的规范习惯并不冲突,你可以这样理解,ThinkPHP中的这些文件都是应用app内的,而一些额外的通用的类库,应当用更易于阅读区分的方式去命名

比如如果在common下有一个通用的基类控制器,我们应当命名为AdminController而不是Admin,如果有一个通用的模型,则命名为AdminModel,而不是Admin,尽管他们处于普通的子目录.

common内置的子目录

我们在common下内置了一些目录存放类库文件,这里做一下说明,目录预览如下:

common                      
├─ command                  
│  ├─ admin                 
│  │  └─ ResetPassword.php  
│  ├─ timer                 
│  │  └─ config.php         
│  ├─ Curd.php              
│  ├─ Install.php           
│  ├─ Node.php              
│  ├─ OssStatic.php         
│  └─ Timer.php             
├─ constants                
│  ├─ AdminConstant.php     
│  └─ MenuConstant.php      
├─ controller               
│  ├─ AdminController.php   
│  ├─ TimerController.php   
│  └─ ToolsController.php   
├─ model                    
│  └─ TimeModel.php         
├─ service                  
│  ├─ AuthService.php       
│  └─ MenuService.php       
├─ tools                    
│  ├─ BuildCurdTools.php    
│  └─ PathTools.php         
├─ tpl                      
│  ├─ dispatch_jump.tpl     
│  └─ think_exception.tpl   
└─ traits                   
   └─ JumpTrait.php

common的文件下,除了命令目录command,都需要命名后缀,以便在调用时有更好的可读性.

command

这个目录存放的是ThinkPHP生成的命令行文件,应当继续遵守ThinkPHP的命名习惯,一般的按照TP文档,生成的命令不会在common下,所以应当用下面的方式生成命令:

命令行的入口文件是think,一般不会区分应用(app),所以我们应当把一些命令放到common目录下

php think make:command common@Test

constants

存放常量类库文件

controller

存放控制器基类

modle

存放模型基类

service

  • 存放与业务息息相关的逻辑文件,比如登录注册/加载列表
  • 存放在多个应用下都会用到的服务层文件,如果服务层的文件只会在一个应用下使用,则不应当存放在这里
  • 一般使用实例化类的调用方式编写逻辑,也可以适当使用静态方法的方式
  • 一般与数据库进行很多调用

tools

该目录的功能与service很相似,但是:

  • 存放与业务并不息息相关的文件,比如发送验证码,发送邮件,初始化目录
  • 一般写成静态方法的方式
  • service相比,一般这里都和扩展类库打交道,很少与数据库打交道

tpl

存放一些系统中使用的模板文件,既可以使用原生PHP的写法(<?php echo $title; ?>),也可以使用view的视图引擎写法,自己注意调用即可.

traits

存放 通用的 traits 类库文件,跟应用内的业务并不是息息相关,比如通用的页面跳转等

原文标题:app/common目录规范

原文文档:ulthon_admin

原文地址:https://doc.ulthon.com/read/augushong/ulthon_admin/62393f7375440/zh-cn/2.x.html

原文平台:奥宏文档

2.x