Почему:: класс добавлен в класс PHP в Laravel 5.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?

1 ответ

Решение

PHP документация по:: классу

Эта функция была введена в версии 5.5, которая теперь требуется для Laravel 5.1

Магия ::class Свойство содержит FQN (полное имя) класса.

Преимущества этого в основном приходят с хорошей IDE. Некоторые:

  • Меньше опечаток
  • Легче Рефакторинг
  • Автодополнение
  • Нажмите на класс, чтобы перейти к файлу

Иногда также приятно, что вы можете импортировать класс вместо полного имени в коде. Это делает ваш код чище, и все зависимости объявлены с use на вершине класса. (Я говорю иногда, потому что для одного не имеет смысла импортировать все классы в файле конфигурации, как app.php)

Другие вопросы по тегам