协程上下文思路
<?php
use Hyperf\Context\Context;
// 将 bar 字符串以 foo 为 key 储存到当前协程上下文中
$foo = Context::set('foo', 'bar');
// set 方法会再将 value 作为方法的返回值返回回来,所以 $foo 的值为 bar
<?php
use Hyperf\Context\Context;
// 从当前协程上下文中取出 key 为 foo 的值,如不存在则返回 bar 字符串
$foo = Context::get('foo', 'bar');
<?php
use Hyperf\Context\Context;
// 从当前协程上下文中判断 key 为 foo 的值是否存在
$foo = Context::has('foo');
<?php
use Psr\Http\Message\ServerRequestInterface;
use Hyperf\Context\Context;
// 从协程上下文取出 $request 对象并设置 key 为 foo 的 Header,然后再保存到协程上下文中
$request = Context::override(ServerRequestInterface::class, function (ServerRequestInterface $request) {
return $request->withAddedHeader('foo', 'bar');
});
- 替换类用
/class_map/xxx
来统一文件路径 - 短生命周期对象 - make - 参考
- 获取容器对象 -
$container = \Hyperf\Context\ApplicationContext::getContainer();
-参考 - 使用db实例 -
$db = ApplicationContext::getContainer()->get(DB::class);
- 参考