<?php namespace Illuminate\Bus; use Illuminate\Support\ServiceProvider; // more namespace has the been used class BusServiceProvider extends ServiceProvider {// BusServiceProvider extends the big ServiceProvider /** * Indicates if loading of the provider is deferred. * Indicates if loading of the provider is deferred. * @var bool */ protected $defer = true;// a protected $defer /** * Register the service provider. * * @return void */ public function register() { $this->app->singleton('Illuminate\Bus\Dispatcher', function ($app) { return new Dispatcher($app, function ($connection = null) use ($app) { return $app['Illuminate\Contracts\Queue\Factory']->connection($connection); }); });// big register $this->app->alias( 'Illuminate\Bus\Dispatcher', 'Illuminate\Contracts\Bus\Dispatcher' );// set alias $this->app->alias( 'Illuminate\Bus\Dispatcher', 'Illuminate\Contracts\Bus\QueueingDispatcher' );// a set this it is } /** * Get the services provided by the provider. * get the services provided by the provider. * @return array */ public function provides() { return [ 'Illuminate\Bus\Dispatcher', 'Illuminate\Contracts\Bus\Dispatcher', 'Illuminate\Contracts\Bus\QueueingDispatcher', ]; }// back this is a return }