Bristol SU Support Package
ConnectionServiceProvider.php
Go to the documentation of this file.
1 <?php
2 
4 
9 use BristolSU\Support\Connection\Contracts\ConnectorRepository as ConnectorRepositoryContract;
10 use BristolSU\Support\Connection\Contracts\ConnectorStore as ConnectorStoreContract;
11 use BristolSU\Support\Connection\Contracts\ConnectionRepository as ConnectionRepositoryContract;
17 
21 class ConnectionServiceProvider extends ServiceProvider
22 {
23 
32  public function register()
33  {
34  $this->app->singleton(Client::class, GuzzleClient::class);
35  $this->app->extend(Client::class, function($service) {
36  return new CachedClientDecorator($service, app(Repository::class));
37  });
38 
39  $this->app->bind(ClientInterface::class, \GuzzleHttp\Client::class);
40 
41  $this->app->singleton(ConnectorStoreContract::class, ConnectorStore::class);
42  $this->app->bind(ConnectorRepositoryContract::class, ConnectorRepository::class);
43  $this->app->bind(ConnectionRepositoryContract::class, ConnectionRepository::class);
44  $this->app->bind(ConnectorFactoryContract::class, ConnectorFactory::class);
45  $this->app->singleton(ServiceRequestContract::class, ServiceRequest::class);
46  }
47 
53  public function boot()
54  {
55  Route::bind('connection_id', function($id) {
56  return Connection::findOrFail($id);
57  });
58  }
59 
60 }