为什么:: class附加到Laravel 5.1中的PHP类中?

问题描述 投票:8回答:1

在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文档中可以找到任何地方吗?

php namespaces laravel-5 laravel-5.1
1个回答
13
投票

PHP Documentation on ::class

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

不可思议的::class属性包含该类的FQN(完全限定名称)。

它的优点主要来自一个好的IDE。一些是:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.