关于thinkPHP6 的“容器的依赖注入”疑问

在tp6的生命周期中,系统自动或者我们手动在容器中绑定一些类。比如:

protected $bind = [
        'middleware'              => Middleware::class,
        'request'                 => Request::class,
    ];



这样做之后,我们可以这样使用:

app('request')->rootDomain();



或者在控制器中这样使用(依赖注入):


namespace app\index\controller;

use think\Request;

class Index
{
    public function index(Request $request)
    {
        return $request->baseUrl();
    }
}



问题:我发现即使不绑定容器,同样也能够使用依赖注入。这是为什么?那绑定还有什么用,只是为了可以像这样使用吗app('request')->rootDomain()?