为什么在Laravel 5.1中将:: class附加到PHP类

Eme*_*bah 8 php namespaces laravel-5 laravel-5.1

在Laravel 5.0中,这样的代码用于名称调整/加载类:

  'providers' => [

        /*
         * Laravel Framework Service Providers...
         */
         'Illuminate\Foundation\Providers\ArtisanServiceProvider',
         'Illuminate\Auth\AuthServiceProvider',
         'Illuminate\Broadcasting\BroadcastServiceProvider',
         'Illuminate\Bus\BusServiceProvider',
]
Run Code Online (Sandbox Code Playgroud)

但是,我在Laravel 5.1中看到了这一点

'providers' => [

        /*
         * Laravel Framework Service Providers...
         */
         Illuminate\Foundation\Providers\ArtisanServiceProvider::class,
         Illuminate\Auth\AuthServiceProvider::class,
         Illuminate\Broadcasting\BroadcastServiceProvider::class,
         Illuminate\Bus\BusServiceProvider::class,
]
Run Code Online (Sandbox Code Playgroud)

我的问题:什么是这样做的好处Illuminate\Bus\BusServiceProvider::class在这个'Illuminate\Bus\BusServiceProvider'时候我应该追加::class一类的名字吗?

我有什么地方可以在PHP文档中找到它吗?

luk*_*ter 13

关于:: class的PHP文档

该功能已在5.5版本中引入,现在Laravel 5.1需要该版本

magic ::class属性包含类的FQN(完全限定名称).

它的优点主要是一个好的IDE.有些是:

  • 拼写错误
  • 更容易重构
  • 自动完成
  • 单击类跳转到该文件

有时,您可以导入类而不是在代码中使用全名,这也很好.这使您的代码更清晰,并且所有依赖项都use在类的顶部声明.(我有时会说,因为在一个配置文件中导入所有类没有意义app.php)