# 生命周期
* * * * *
此处讲解的是OneBase的生命周期,若对TP5生命周期不了解请先阅读TP5文档。
### 1、入口文件
用户发起请求会经过应用的入口文件,通常在public目录下。
入口文件主要做3件事情,初始化框架常量,绑定请求模块,加载引导文件。
OneBase推荐每个对外访问的模块一个入口文件,当然若有需要也可以使用同一个入口文件。
### 2、系统初始化行为
执行行为定义文件 app/tags.php
下面将依次执行系统行为文件 InitBase.php 进行应用初始化,InitHook.php 进行钩子插件初始化,AppBegin.php 进行开始信息记录。
### 3、公共控制器
进入了控制器层,开始执行公共控制器 ControllerBase.php
公共控制器加载时做了三件事,初始化请求信息,初始化全局静态资源,初始化响应类型。
### 4、模块控制器
公共控制器执行完毕则进入了请求的模块控制器,在模块控制器中执行业务逻辑层完成相应的业务逻辑处理,业务逻辑层处理后返回控制器层,由控制器进行模板渲染或请求跳转。
### 5、模块业务层
控制器调用过来由业务层进行业务逻辑处理,业务逻辑可以简单处理业务返回数据,也可以有很多分支,当然也可以调用函数库与composer安装的一些依赖进行数据处理。
### 6、数据验证层|系统服务层|数据模型层...
数据验证层主要做数据合法性验证,若验证可能跨模块可放入公共模块的验证层。
系统服务层主要是给系统提供第三方服务,当然也可以是自行研发的服务,如:支付,云储存,短信 等。
数据模型层则是数据库表的映射,可通过数据模型操作数据表。
### 7、数据访问层
数据访问层则是指ModelBase,因为几乎所有的数据库操作都需要经过此处,目前此处的数据库访问操作都是通用的,会自动识别当前访问的数据模型对象进行相应的表操作,若需要将数据访问分散不需要自动识别则建议将数据表操作封装在各表的数据模型文件,通用部分封装在各模型层的基类文件。
### 8、响应输出
以上流程执行完毕后请求原路返回,通过返回的数据进行JSON或模板的渲染响应输出。
### 9、应用结束
输出后则会执行应用结束行为,进行日志的写入。
OneBase系统生命周期大致就是这样,当然中途可能会有很多分支及判断包括权限验证等,此处不在细分。
- 序言
- 基础
- 安装环境
- 安装演示
- 规范
- 目录
- 介绍
- 后台介绍
- 后台首页
- 会员管理
- 系统管理
- 系统设置与配置管理
- 菜单管理
- 系统回收站
- 服务管理
- 插件管理
- 文章管理
- 接口管理
- 优化维护
- SEO管理
- 数据库
- 文件清理
- 行为日志
- 执行记录
- 统计分析
- 接口介绍
- 接口文档
- 错误码设计
- Token介绍
- 前台介绍
- 架构
- 架构总览
- 生命周期
- 入口文件
- 模块设计
- 依赖注入
- 控制器架构
- 逻辑架构
- 验证架构
- 服务架构
- 模型架构
- 行为架构
- 插件架构
- 配置
- 配置介绍
- 配置加载
- 配置扩展
- 请求
- 请求信息
- 日志
- 后台行为日志
- 系统执行日志
- 框架日志
- 数据
- 数据库设计
- 数据字典
- 数据库操作
- 事务控制
- 混合操作
- 实战
- 控制器
- 逻辑与验证
- 视图与模型
- 插件研发
- 服务研发
- 接口研发
- 杂项
- 数据导入导出
- 二维码条形码
- 邮件发送
- 云存储服务
- 支付服务
- 短信服务
- 微信分享
- 生成海报
- 聊天室
- PJAX
- Demo
- Widget
- 附录
- 常量参考
- 配置参考
- 函数参考
- 进阶
- Redis
- 自动缓存
- 全自动缓存
- 索引
- 数据签名
- 全自动事务
- 队列