In Laravel 5.0 code like this is used for names-pacing/loading classes:
'providers' => [
/*
* Laravel Framework Service Providers...
*/
'Illuminate\Foundation\Providers\ArtisanServiceProvider',
'Illuminate\Auth\AuthServiceProvider',
'Illuminate\Broadcasting\BroadcastServiceProvider',
'Illuminate\Bus\BusServiceProvider',
]
However, am seeing this in 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,
]
My question: What is the benefit of this Illuminate\Bus\BusServiceProvider::class
over this 'Illuminate\Bus\BusServiceProvider'
, when should I append ::class
to a class name?
Is there any where I can find this in PHP documentation?
PHP Documentation on ::class
The feature has been introduced with version 5.5, which is now required by Laravel 5.1
The magic
::class
property holds the FQN (fully qualified name) of the class.The advantages of it mostly comes with a good IDE. Some are:
Sometimes it's also nice that you can import the class instead of having the full name in the code. This makes your code cleaner and all dependencies are declared with
use
at the top of the class. (I'm saying sometimes because for one it doesn't make sense to import all classes in a config file likeapp.php
)