# 介绍
`ESD Framework` 克隆自 [EasySwooleDistributed](https://github.com/esd-projects/esd-server)
原仓库地址:[https://github.com/esd-projects/esd-server](https://github.com/esd-projects/esd-server)
原作者大佬因个人原因停止更新,自建仓库,维护和升级。
原仓库包众多,新仓库所有包的源码都合并到了一个仓库。干红 + 雪碧,百年工艺回到原点。
`ESD Framework` 整体是对 `EasySwooleDistributed` 的一个保守维护和升级,以及文档都在保守升级。本文档亦参考了 `EasySwooleDistributed` 的文档。
### 关于名称
延续了`ESD`【`EasySwooleDistributed`】的称呼,程序启动时候,显示`ESD-YII`,因为笔者整合了YII2的诸多组件。
### 开源协议
| 框架 | 开源协议 |
| --- | --- |
| EasySwooleDistributed | Apache License 2.0 |
| YII2 Framework | BSD 3-Clause |
| ESD Framework | BSD 3-Clause |
### 优势
`EasySwooleDistributed` 是 `SwooleDistributed` 的升级版,`SwooleDistributed`亦迭代更新过多个版本。简单,易用,高性能,高扩展性。
1. 拥有众多的功能模块和插件系统, 帮助你实现业务代码的编写。
2. 多端口多协议, 可同时支持UDP、 TCP、 HTTP、 HTTPS、WS、WSS等协议。
3. 异步连接库, 支持redis, mysql, httpclient, tcpclient, mqttclient。
4. 进程管理完善, 自定义进程管理和进程间通讯支持完善。
5. 定时任务可配置。
6. AMQP分布式任务调度。
7. 对象池内存管理, 减少GC。
8. CLI命令支持, 可自定义命令。
9. 支持分布式部署。
10. 微服务架构, RPC支持。
11. AOP完整支持面向切片编程。
- 1 介绍
- 2 安装
- 2.1 环境
- 2.2 安装
- 3 配置
- 3.1 Server配置
- 3.2 端口配置
- 3.3 项目结构
- 3.4 内核优化
- 4 服务
- 4.1 HTTP服务
- 4.1.1 路由
- 4.1.1.1 静态路由
- 4.1.1.2 路由定义
- 4.1.1.3 路由方法
- 4.1.1.4 路由分组
- 4.1.1.5 资源路由
- 4.1.1.6 端口作用域
- 4.1.1.7 异常处理
- 4.1.1.8 跨域请求
- 4.1.1.9 路由缓存
- 4.1.2 控制器
- 4.1.2.1 控制器初始化
- 4.1.2.2 前置后置操作
- 4.1.2.3 跳转与重定向
- 4.1.2.4 异常处理
- 4.1.3 请求
- 4.1.3.1 请求对象
- 4.1.3.2 请求信息
- 4.1.3.3 REQUEST消息
- 4.1.3.4 RESPONSE消息
- 4.1.3.5 STREAM消息
- 4.1.3.6 URI信息
- 4.1.3.7 处理上传文件
- 4.1.3.8 验证器
- 4.2 Websocket服务
- 4.2.1 Websocket配置
- 4.2.2 Websocket路由
- 4.3 TCP服务
- 4.3.1 TCP配置
- 4.3.2 TCP路由
- 4.3.3 协程处理案例
- 5 插件
- 5.15 Yii-PDO插件
- 5.15.1 PDO 连接MySQL Mariadb
- 5.15.2 PDO连接PostgreSQL
- 5.15.3 PDO连接GreenPlum
- 5.15.4 PDO连接Oracle
- 5.15.5 PDO连接Cubrid
- 5.15.6 PDO连接SQL Server
- 6 概念
- 7. Yii- I18N国际化
- 8. 模型 Yii-Model
- 8.1 快速创建模型
- 8.2 快速创建多个模型
- 8.3 核心验证器 Core Validators
- 9. 配合数据库工作
- 9.1.数据库访问对象 Database Access Objects
- 9.2 查询构造器 Query Builder
- 9.3 活动记录 Active Record