Webman 框架的 Request 类不支持构造注入吗?控制器方法注入没问题,但构造不支持

wangerwu

是我使用姿势不对,还是该类本身就无法通过构造注入?
求解。


目前按照如下方式实现的构造注入。但我改进这个方式,比如在 $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;
    }
}
123 1 0
1个回答

Request类会自动注入到控制器方法的参数里, 不支持其它方式的Request类注入.

  • wangerwu 3天前

    大佬,评论区太小,我把回复贴在了主题内容。我目前是这样实现构造注入的。

    但我改进下这个方式,比如在 $buffer 为 null 时调用框架的方法来获取 $buffer 并传给父级,请问怎样获取到框架注入的 $buffer 值呢?

  • walkor 3天前

    $buffer = (string)request();

×
🔝