在中间件中,注入app\common\service\AuthService 类
用DI
#[Inject]
private AuthService $authService;
注入,报错
Typed property app\\common\\middleware\\Auth::$authService must not be accessed before initialization
变成只能new一个
public function __construct($data)
{
$this->data = $data;
$this->authService = new AuthService();
}
好像Typed property app\common\service\AuthService::$authDao must not be accessed before initialization
通过中间件调用 AuthService 类, AuthService 类中通过
调用AuthDao,也是失败的,而控制器中调用AuthService是正常的,也就是说通过中间件的所有业务流程中都不能使用DI,
有办法解决吗
调用的看到了
改为Container调用正常,但中间件中使用
依然不行
中间件实例化是在 vendor/workerman/webman-framework/src/App.php 的getCallback做的。你自己定位下吧
之前有定位到的,考虑到是否实例化的时候也是通过new的而没有通过container,但发现代码是正确的
所以暂时没有实际导致不能使用的原因
@walkor 大佬指导下,有方案吗?