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
原文平台:奥宏文档