> For the complete documentation index, see [llms.txt](https://xiaoxiami.gitbook.io/swoole/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://xiaoxiami.gitbook.io/swoole/swoole-qi-ta/jie-he-chuan-tong-kuang-jia.md).

# 结合传统框架

可以利用swoole的Http\_server可以很轻松的实现一个异步多进程非阻塞的高性能服务器出来，但是加载传统的框架还是有很多的坑，我们掌握一些注意事项，也可以自行去解决.

## 注意问题

**1、入口文件**&#x20;

框架是通过入口文件，做自动加载然后响应应用的，文件的加载，以及初始化操作都应该在worker当中去执行，每个工作进程加载一个框架实例，而不是每个请求有一个实例。

**2、内容响应位置**&#x20;

响应内容是发生在客户端请求时，所以真正执行框架是在request事件当中。

**3、加载http参数**&#x20;

默认swoole会将http的request参数做了封装，所以我们需要处理成原本的参数形式，让框架自己去组装。

**4、常驻内存导致参数处理问题**&#x20;

Swoole是常驻内存的，所以对于对象的属性，不要去判断是否存在再去加载，否则会得到上次的结果,(pathinfo,get,post)

**5、cli模式**&#x20;

有些框架当中会存在判断当前是否是cli模式，启动swoole就是cli启动所以需要处理下

**6、数据库跟redis共用连接问题**&#x20;

<https://wiki.swoole.com/wiki/page/325.html> 看这里

在框架当中可以采取一个比较简单粗暴的方法处理，使用$GLOBALS处理，这样在同一个进程，就会有某个mysql或者redis的实例

## 资料

[think-swoole](https://github.com/top-think/think-swoole) : ThinkPHP 5.1 Swoole 扩展
