# 架构总览 * * * * * ![](https://box.kancloud.cn/3a078a1fca6e731d603895a0e9c5dd8e_1366x1334.png) 上图是OneBase总体架构图,最上方是 入口文件,每个入口文件对应一个模块,模块可支持分服务器独立部署,所以在编码过程中除了公共模块以外 其他模块之间不要互相依赖。 入口文件就是引导请求进入框架,下面就是执行系统行为。 行为执行完毕则进入控制器层,因为其他模块控制器都直接或间接的继承了通用控制器,所以会先执行公共模块通用控制器,再执行请求的模块控制器。 OneBase的思想是在控制器尽量只做两件事,1.调用业务逻辑层实现业务处理,2.将业务数据赋值并输出模板。 考虑到不同模块的业务逻辑层中可能会有部分逻辑复用,所以可在各模块的业务逻辑中引用公共模块的业务。 逻辑层中可调用数据验证层 进行数据验证,此处推荐尽量将验证封装在各模块的验证层中。 逻辑层可调用数据模型层处理数据库操作,也可以调用系统的扩展 如 表格导出,二维码生成 等。 逻辑层还可以调用服务层 进行 数据缓存,对象存储,支付,短信 等。 数据访问层实际上就是数据模型层的根源ModelBase,系统中99%的数据库操作皆由此处处理。