app->singleton('tax', function () { return new Tax(); }); } /** * @throws \Exception */ public function boot() { $uri = request()->getRequestUri(); if (Str::startsWith($uri, "/installer")) { return; } $this->loadRoutesFrom(__DIR__ . '/../Routes/shop.php'); load_settings(); if (Str::startsWith($uri, '/admin')) { return; } Config::set('filesystems.disks.upload', [ 'driver' => 'local', 'root' => public_path('upload'), ]); $this->mergeConfigFrom(__DIR__ . '/../../Config/beike.php', 'beike'); $this->registerGuard(); $this->loadThemeViewPath(); $this->loadComponents(); } protected function registerGuard() { Config::set('auth.guards.' . Customer::AUTH_GUARD, [ 'driver' => 'session', 'provider' => 'shop_customer', ]); Config::set('auth.providers.shop_customer', [ 'driver' => 'eloquent', 'model' => Customer::class, ]); } protected function loadThemeViewPath() { $this->app->singleton('view.finder', function ($app) { $paths = $app['config']['view.paths']; if ($theme = system_setting('base.theme')) { $customTheme[] = base_path("themes/{$theme}"); $paths = array_merge($customTheme, $paths); } return new FileViewFinder($app['files'], $paths); }); } protected function loadComponents() { $this->loadViewComponentsAs('shop', [ 'sidebar' => AccountSidebar::class, 'alert' => Alert::class, 'breadcrumb' => Breadcrumb::class ]); } }