新浪xweibo 代码架构分析与二次开发 框架概要与特色 xweibo 使用MVC 结构,但VC 层任务分离不明显,V 层也完成部分C 层的任务(调用model 层获取数据)
没有使用smarty 模板类,视图采用组件的形式,可以任意拼装,可以方便模板模块的复用,可以通过后台修改显示细节
core 文件作为所有调用的入口,使用的所有类,函数,适配器,都是用core 提供的函数和类进行调用,便于集中控制
对于 sina open API 调用有统一错误处理,通过 core 层提供的数据交互组件,集中对数据进行缓存,过滤,格式化等操作
框架整体流程图 如图所示 1 请求到达后首先进入预处理模块
2->3->4 预处理调用控制器层的类中的函数对 xweibo全局数据进行设置(如session)
5->6->7 应用初始化,如模板皮肤,应用安装位置,log位置格式,ip过滤等操作,并调用 model层,设置用户的相关信息
8->9 路由层,将用户请求交给相应的控制器 (controller)进行处理
10->11->12->13 控制器调用 open api获取相关数据
14->15->16->17 控制器缓存相关数据或者获取缓存的相关信息 ,或者站点数据库内定制的信息(结果显示数量等)
18 控制器包含相关模板(view)进行显示
19->20->21->22 每个模板(view)包含自己需要显示的组件(子 view),每个组件调用 model层获取自己所需的数据,进行显示
xweibo 介绍各个子功能和模块 预处理模块 用户请求进入后,可以指定加载预处理模块,这些预处理模块就是执行一些controller中的成员函数,比如初始化站点信息,比如检验用户是否登录
加载预处理模块时可以指定哪些请求跳过预处理模块,比如登录请求就不需要加载登录校验