При импорте класса, используйте статическое свойство class
вместо строки. Например, когда дело доходит до событий и слушателей Laravel, вам нужно будет зарегистрировать событие и указать, какие слушатели будут его обрабатывать.
Использование свойства class значительно упрощает чтение и рефакторинг. Например вместо такого подключения:
namespace App\Providers; use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; class EventServiceProvider extends ServiceProvider { /** * The event listener mappings for the application. * * @var array */ protected $listen = [ 'Illuminate\Auth\Events\Registered' => [ 'Illuminate\Auth\Listeners\SendEmailVerificationNotification', ], ]; /** * Register any events for your application. * * @return void */ public function boot() { // } }
Лучше воспользоваться регистрацией класса.
namespace App\Providers; use Illuminate\Auth\Events\Registered; use Illuminate\Auth\Listeners\SendEmailVerificationNotification; use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; class EventServiceProvider extends ServiceProvider { /** * The event listener mappings for the application. * * @var array */ protected $listen = [ Registered::class => [ SendEmailVerificationNotification::class, ], ]; /** * Register any events for your application. * * @return void */ public function boot() { // } }
Что уже выглядит более читабельно. Кроме того, мы можем импортировать пространство имён.
namespace App\Providers; use Illuminate\Auth\Events; use Illuminate\Auth\Listeners; use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; class EventServiceProvider extends ServiceProvider { /** * The event listener mappings for the application. * * @var array */ protected $listen = [ Events\Registered::class => [ Listeners\SendEmailVerificationNotification::class, ], ]; /** * Register any events for your application. * * @return void */ public function boot() { // } }