是我使用姿势不对,还是该类本身就无法通过构造注入?
求解。
目前按照如下方式实现的构造注入。但我改进这个方式,比如在 $buffer 为 null 时调用框架的方法来获取 $buffer 并传给父级,请问怎样获取到框架注入的 $buffer 值呢?
use Webman\Http\Request as WebmanRequest;
/**
* 封装框架提供的 Reqeust,扩展并加强其中部分方法
*/
class Request extends WebmanRequest
{
public function __construct(?string $buffer = null)
{
if ($buffer === null) {
$buffer = request()?->getBuffer();
if ($buffer === null) {
throw new \RuntimeException('Request 类实例化失败');
}
}
parent::__construct($buffer);
}
/**
* 获取请求体
*
* @return string
*/
public function getBuffer(): string
{
return $this->buffer;
}
}
Request类会自动注入到控制器方法的参数里, 不支持其它方式的Request类注入.
大佬,评论区太小,我把回复贴在了主题内容。我目前是这样实现构造注入的。
但我改进下这个方式,比如在 $buffer 为 null 时调用框架的方法来获取 $buffer 并传给父级,请问怎样获取到框架注入的 $buffer 值呢?
$buffer = (string)request();