在 Yii 2.0 高级模板 中实现 模型分层:数据层、逻辑层 的流程

1、定义:
数据层:models 用于定义数据相关的自动验证和自动完成和数据存取接口。
逻辑层:logics 用于定义数据相关的业务逻辑。

2、在common目录中新建logics目录,用于MySQL模型的逻辑层所在目录,如图1

图1

3、在common/logics目录中新建redis目录,用于Redis(ActiveRecord)模型的逻辑层所在目录,如图2

图2

4、在common/models目录中的MySQL模型文件为Gii工具所生成,如图3

图3

5、在common/models/redis目录中的Redis(ActiveRecord)模型文件为模型字段结构的定义,如图4

图4

6、在common/logics目录中的MySQL模型文件为业务逻辑相关,继承至 \common\models\Game 数据层,如图5

api\models
common\logics

图5

7、在common/logics/redis目录中的Redis(ActiveRecord)模型文件为业务逻辑相关,继承至 \common\models\redis\Game 数据层,如图6

api\models\redis
common\logics\redis

api\models
common\models

Api
Common

common\models\redis\Lock
common\logics\redis\Lock

common\models\redis\Live
common\logics\redis\Live

$api
$common

图6

8、在common/logics/redis目录中的Redis(原生命令)模型文件为业务逻辑相关,不需要继承至 \common\models\redis\Game 数据层,而是直接继承至 \yii\redis\ActiveRecord,如图7

图7

9、在api/models目录中的MySQL模型文件为业务逻辑相关,继承至 \common\logics\Game 逻辑层,如图8

\common\models
\common\logics

图8

10、在api/models/redis目录中的Redis(ActiveRecord/原生命令)模型文件为业务逻辑相关,继承至 \common\logics\redis\Game 逻辑层,如图9

common\models\redis\Lock
common\logics\redis\Lock

\common\models\redis
\common\logics\redis

图9

永夜