diff --git a/src/CartServiceProvider.php b/src/CartServiceProvider.php index 08facff..b33c24c 100644 --- a/src/CartServiceProvider.php +++ b/src/CartServiceProvider.php @@ -1,22 +1,16 @@ app->runningInConsole()) { $this->publishes([ @@ -25,39 +19,22 @@ public function boot() } } - /** - * Register the service provider. - * - * @return void - */ - public function register() + public function register(): void { $this->mergeConfigFrom(__DIR__ . '/../config/config.php', 'cart'); + $this->app->singleton('cart.manager', fn($app) => new CartManager($app)); + $this->app->singleton('cart', function ($app) { $config = config('cart'); $events = $app['events']; + $driver = $app['cart.manager']->driver(); - $storage = $config['driver'] === 'database' - ? new $config['storage']['database']['model'] - : $app['session']; - - return new Cart( - $storage, - $events, - 'cart', - session()->getId(), - $config - ); + return new Cart($driver, $events, 'cart', $config); }); } - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() + public function provides(): array { return []; }