在Laravel 5.0中,这样的代码用于命名/加载类:
'providers' => [
/*
* Laravel Framework Service Providers...
*/
'Illuminate\Foundation\Providers\ArtisanServiceProvider',
'Illuminate\Auth\AuthServiceProvider',
'Illuminate\Broadcasting\BroadcastServiceProvider',
'Illuminate\Bus\BusServiceProvider',
]
但是,在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,
]
我的问题:Illuminate\Bus\BusServiceProvider::class
比'Illuminate\Bus\BusServiceProvider'
有什么好处,何时应该在类名后附加::class
?
在PHP文档中可以找到任何地方吗?
此功能已在5.5版中引入,Laravel 5.1现在需要此功能
不可思议的::class
属性包含该类的FQN(完全限定名称)。
它的优点主要来自一个好的IDE。一些是:
有时,也可以导入类而不在代码中使用全名,这也很好。这使您的代码更整洁,并且所有依赖项都在类顶部使用use
声明。 (我之所以说有时候是因为,对于一个类来说,将所有类都导入到app.php
这样的配置文件中是没有意义的)