app = $app; $this->baseDirectory = dirname(dirname(dirname(__DIR__))); $this->environmentFilePath = sprintf('%s/.env', $this->baseDirectory); } public function handle(Request $request, Closure $next) { // We always need an encryption key if not already present $this->generateAppKey(); if ($this->app->runningInConsole()) { // Allow the console to run successfully even if we're not installed return $next($request); } if ($request->is('install/*')) { // Already in the installer return $next($request); } try { if (Configuration::installCompleted()) { return $next($request); } } catch (\Exception $ex) { // Empty catch block to allow falling through to the redirect below } return redirect(route('install.check')); } private function generateAppKey() { // Generate an application key and store to the .env file if (!file_exists($this->environmentFilePath)) { $key = MiscHelper::randomString(32); file_put_contents($this->environmentFilePath, sprintf('APP_KEY=%s', $key) . PHP_EOL); app('config')->set(['app' => ['key' => $key]]); } } }