# YAF架构
### 一、架构总览
YAF是经典的MVC架构,主要组件如下:
**(1)应用**
YAF系统架构与生命周期的对象,由系统类Yaf\_Application(启用命名空间的情况下是Yaf\\Application)类完成,在入口文件中被初始化并被启动,在应用中可以使用Yaf\_Application::app()(启用命名空间的情况下是Yaf\\Application::app())来引用该对象
**(2)模块**
一个典型的应用是由多个模块组成的,这些模块通常都是应用目录下面的一个子目录,每个模块都自己独立的配置文件、公共文件和类库文件。模块可以功能分组。
**(3)控制器**
应用的调度层。每个模块拥有独立的MVC类库及配置文件,一个模块下面有多个控制器负责响应请求,而每个控制器其实就是一个独立的控制器类。
控制器主要负责请求的接收,并调用相关的模型处理,并最终通过视图输出或直接输出。严格来说,控制器不应该过多的介入业务逻辑处理。
**(4)操作**
一个控制器包含多个操作(方法),操作方法是一个URL访问的最小单元。在YAF中只有带Action后缀的方法才会对外部访问者开发。在YAF中还可以定义一个Action类处理某个操作。
**(5)模型**
应用的数据逻辑层。YAF框架中并没有自带数据库操作的类,我们可以自己封装相关DB操作,如使用PHP自带的PDO来对模型进行封装。
**(6)视图**
应用展示层。YAF框架自带了一个类似原生的视图,当然也可以集成第三方模板引擎如Smarty、Mustache等
**(7)插件**
通过内置的钩子工具可以实现在相应的执行阶段注册相关插件。
- 序言
- 安装 Yaf
- Yaf基础知识
- 1.运行流程
- 2.YAF架构
- 3.目录结构
- 4.Yaf的配置
- 5.Yaf的Bootstrap
- 6.Yaf的多模块配置
- 7.Yaf中使用命名空间
- 本书框架配置
- 1.框架目录结构
- 2.数据库配置
- 3.缓存配置
- 4.全局配置
- 5.公共助手函数
- 请求与响应
- 1.请求-Request
- 2.响应-Response
- 数据库操作
- 使用think-orm
- 接口开发
- 1.RESTful接口设计
- 2.Yar RPC接口设计
- 数据验证
- 数据验证 - validate
- 网页开发
- Session
- Cookie
- 路由设置
- 工具类
- 1.Rsa加密
- 2.Random快速生成随机数
- 3.Cache - 缓存
- 4.Weapp - 微信小程序类
- 5.Qiniu - 七牛云存储使用
- 6.支付类(微信&支付宝)
- 7.Logs - 日志记录