8

在 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我的问题: this比 this有什么好处,我什么'Illuminate\Bus\BusServiceProvider'时候应该附加::class到类名?

我可以在 PHP 文档中找到这个吗?

4

1 回答 1

13

::class 上的 PHP 文档

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

魔术::class属性包含类的 FQN(完全限定名)。

它的优势主要来自于一个好的 IDE。有些是:

  • 更少的错别字
  • 更容易重构
  • 自动完成
  • 点击类跳转到文件

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

于 2015-06-12T11:00:47.993 回答