i18n($request); // check dotenv if (!file_exists(base_path('.env'))) { throw new PrettyPageException(trans('setup.file.no-dot-env'), -1); } // check permissions of storage path if (!is_writable(storage_path())) { throw new PrettyPageException(trans('setup.permissions.storage'), -1); } try { // check database config Database::prepareConnection(); } catch (\Exception $e) { throw new PrettyPageException( trans('setup.database.connection-error', ['msg' => $e->getMessage()]), $e->getCode() ); } // skip the installation check when setup or under CLI if (!$request->is('setup') && !$request->is('setup/*') && PHP_SAPI != "cli") { $this->checkInstallation(); } } protected function checkInstallation() { // redirect to setup wizard if (!SetupController::checkTablesExist()) { return redirect('/setup')->send(); } if (!SetupController::checkDirectories()) { throw new PrettyPageException(trans('setup.file.permission-error'), -1); } if (Utils::versionCompare(config('app.version'), option('version', ''), '>')) { return redirect('/setup/update')->send(); } return true; } protected function i18n($request) { $locale = $request->input('lang') ?: ($request->cookie('locale') ?: $request->getPreferredLanguage()); app()->setLocale($locale); session()->set('locale', $locale); cookie()->queue('locale', $locale); } /** * Register any application services. * * @return void */ public function register() { $this->app->singleton('options', OptionRepository::class); $this->app->singleton('database', Database::class); } }