When binding services into the container, usually we use the register() method, which is the dedicated method for this. However, there is another quick way to bind services.
Let’s take a look, how do we use the register method usually:
public function register() { $this->app->singleton(Contract::class, Service::class); $this->app->bind(OtherContract::class, function ($app) { return new OtherService($app); }); }
This is the generic way to register services, and we need to go this way when we want to customize the service a bit. However, when our service is quite simple, we can skip the register method, and use the $bindings and $singletons property:
public $bindings = [ OtherContract::class => OtherService::class, ]; public $singletons = [ Contract::class => Service::class, ];
Using this approach, we can clean up our register method a bit. This is useful when we are registering a bunch of different services, so the simpler ones, we can refactor to a property instead of populating the register method more.
You can find the documentation here: https://laravel.com/docs/master/providers