作者:手机用户2502880331 | 来源:互联网 | 2023-08-25 15:57
PHP的其他框架都是一个进程处理一个请求。所以有很多简短的全局助手函数。比如dbmodelinput等等。但是SWOOLE一个请求是在一个协程内完成的,就不太好实现助手函数。希
PHP的其他框架都是一个进程处理一个请求。所以有很多简短的全局助手函数。比如db model input等等。
但是SWOOLE 一个请求是在一个协程内完成的,就不太好实现 助手函数。 希望能增加一个得到onrequest的协程ID。
这样就可以实现助手函数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| $staticReqs=array();
function getRequestID(){
return co::getCid(); //这里希望有新的函数
}
function model(){
global staticReqs;
$db=$staticReqs[getRequestID()];
$db->query(...);
}
$server = new Swoole\Http\Server('127.0.0.1', 9501, SWOOLE_BASE);
协程开始#1
$server->on('Request', function($request, $response) {
$db=new Swoole\Coroutine\MySQL();
$db->connect.....
staticReqs[getRequestID()]=$db;
//业务
//处理,如果里面还有go协程的话getCid()就有得不到Request的协程ID,
//直接调用 函数不传参数model()
unset(staticReqs[getRequestID()]);
});
$server->start(); |