Laravel 正在加载服务提供商和别名

Laravel Loading Service Provider and Alias

也许只是我的问题,但我不确定这是做什么的以及他们为什么需要这样做?

在 laravel 中加载的提供程序中,他们这样做了

'providers' => [

        /*
         * Laravel Framework Service Providers...
         */
        Illuminate\Auth\AuthServiceProvider::class,
        Illuminate\Broadcasting\BroadcastServiceProvider::class,

...

别名相同

'aliases' => [

        'App' => Illuminate\Support\Facades\App::class,
        'Artisan' => Illuminate\Support\Facades\Artisan::class,

...

::class 是做什么的,为什么他们不能就这样把它关掉?

'aliases' => [

        'App' => Illuminate\Support\Facades\App,
        'Artisan' => Illuminate\Support\Facades\Artisan,

只是 return class name with namespace !

自 PHP 5.5 起,class 关键字也用于 class 名称解析。 您可以使用 ClassName::class 获取包含 ClassName class 的完全限定名称的字符串。 这对于命名空间 classes.

特别有用
namespace NS {
    class ClassName {
    }
    echo ClassName::class;
}

上面的例子会输出:

NS\ClassName

Source 1

Php manual