## 一、单一应用对象
swoolefy的大致工作流程分为两部分:
#### 1、启动流程
a. 首先是启动服务,将会加载vendor下的autoload.php的自动加载文件,自定义的autoloader.php的自动加载文件,完成命名空间的注册,加载swoolefy底层必要常量
b. 根据不同的服务创建不同的应用服务器,判断当前环境是否满足条件,然后根据协议层的config.php配置文件在各个进程启动时设置进程名称,执行启动的初始化。
#### 2、请求处理流程:
a. 接受请求,应用单例执行boostrap引导过程,设置环境,初始化判断等
b. 根据不同服务的路由规则,判断类文件是否存在,创建一个控制器实例,然后智能调度
c. 制器实例执行_beforceAction操作,然后执行action操作
d. 视图渲染与response
e. 制器实例执行_afterAction操作销毁类静态变量或者初始化化,应用单例执行end操作,注册的钩子函数等销毁worker进程产生的全局变量或者类静态变量
## 2、启动时自动创建服务对应的协议层
在每个不同的的服务启动时,将会创建对应服务目录,(例如上面章节启动http的服务时,将会自动在project的目录下创建protocol/App目录)目录将包含几个文件
* http服务(protocol/App)
~~~
protocol/App
|----log
|--includes.json
|--log.txt
|--server.pid
|----config-dev.php
|----config-gra.php
|----config-gra.php
~~~
* websocket服务(protocol/websocket)
```
|----log
|--includes.json
|--log.txt
|--server.pid
|----config-dev.php
|----config-gra.php
|----config-gra.php
```
应用目录下的WebsocketEventServer.php这个文件是抽象Event的回调处理类,与底层的服务解耦,在实际业务中,我们可能需要在回调函数中做一些处理,默认不做处理也即可使用
* rpc服务(protocol/rpc)
```
|----log
|--includes.json
|--log.txt
|--server.pid
|----config-dev.php
|----config-gra.php
|----config-gra.php
```
应用目录下的RpcServer.php这个文件是抽象Event的回调处理类,与底层的服务解耦,在实际业务中,我们可能需要在回调函数中做一些处理,默认不做处理也即可使用
* Udp服务(protocol/udp)
~~~
|----log
|--includes.json
|--log.txt
|--server.pid
|----config-dev.php
|----config-gra.php
|----config-gra.php
~~~
应用目录下的UdpEventServer.php这个文件是抽象Event的回调处理类,与底层的服务解耦,在实际业务中,我们可能需要在回调函数中做一些处理,默认不做处理也即可使用
对于抽象Event的回调处理类,将在下一节Event请求处理中说到
- 欢迎使用swoolefy
- 环境说明
- 开发部署
- 安装
- 创建应用
- 启动|停止服务
- nginx代理
- 创建Controller
- 应用结构
- App应用对象
- Event请求处理
- 超全局管理
- 热更新
- inotify实现worker进程热重启
- http服务
- 应用层配置
- 协议层配置
- 路由规则
- 控制器
- 数据模型
- websocket服务
- 应用层配置
- 协议层配置
- 数据封装格式
- 控制器
- 数据模型
- 二进制数据处理
- rpc服务
- 应用层配置
- 协议程配置
- 数据包协议格式
- 服务控制器
- 服务数据模型
- udp服务
- 应用层配置
- 协议层配置
- 数据包封装格式
- 控制器
- 存在问题
- 常用组件
- log
- view
- session
- cache(redis)
- db(mysql)
- mongodb
- 其他服务管理
- 自定义进程管理
- 异步任务管理
- 内存表管理
- 定时器管理
- 异常捕捉处理
- 进程池管理
- systerm采集进程服务