/** * Execute the console command. * * @return mixed */ public function handle() { // Config variables $pathAppConfig = getcwd() . '/config/app.php'; $oldLocaleString = "'locale' => 'en',"; $newLocalesString = "'locale' => 'en',\r\n 'locales' => ['en' => 'English', 'nl' => 'Dutch'],\r\n 'skip_locales' => ['admin', 'api'],"; // Providers Variables $pathPackageRouteServiceProvider = __DIR__ . '/../Providers/RouteServiceProvider.php'; $pathProjectRouteServiceProvider = app_path('Providers/RouteServiceProvider.php'); // Middleware variables $pathOriginalProviders = __DIR__ . '/../Providers/Original'; $pathOriginalRouteServiceProvider = __DIR__ . '/../Providers/Original/RouteServiceProvider.php'; $pathPackageLanguageMiddleware = __DIR__ . '/../Middleware/Language.php'; $pathProjectLanguageMiddleware = app_path('Http/Middleware/Language.php'); // Kernel variables $pathKernel = getcwd() . '/app/Http/Kernel.php'; $oldKernelString = "protected \$middleware = ["; $newKernelString = "protected \$middleware = [\r\n \\App\\Http\\Middleware\\Language::class,"; // If the user has multiple locales installed if (file_exists($pathOriginalRouteServiceProvider)) { $this->output->newLine(1); $this->error('The multiple locales package is already installed!'); $this->output->newLine(1); return true; } $this->output->newLine(1); // Start the progress bar $bar = $this->helper->barSetup($this->output->createProgressBar(5)); $bar->start(); // Add the 'locales' and 'skip_locales' to config/app.php $this->info("Adding 'locales' and 'skip_locales' to config/app.php"); $this->helper->replaceAndSave($pathAppConfig, $oldLocaleString, $newLocalesString); $bar->advance(); // Saving the user's RouteServiceProvider $this->info('Saving your RouteServiceProvider...'); $this->helper->makeDir($pathOriginalProviders); // make the directory if it doesn't exist $this->helper->copyFile($pathProjectRouteServiceProvider, $pathOriginalRouteServiceProvider); $bar->advance(); // Replace the RouteServiceProvider $this->info('Replacing RouteServiceProvider...'); $this->helper->copyFile($pathPackageRouteServiceProvider, $pathProjectRouteServiceProvider); $bar->advance(); // Add the Language middleware $this->info('Adding Language middelware...'); $this->helper->copyFile($pathPackageLanguageMiddleware, $pathProjectLanguageMiddleware); $bar->advance(); // Add the Language middleware to the Kernel for all requests $this->info('Adding Language middleware to app/Http/Kernel.php ...'); $this->helper->replaceAndSave($pathKernel, $oldKernelString, $newKernelString); $bar->advance(); // Finished adding multiple locales to your project $bar->finish(); $this->info('Finished adding multiple locales to your project.'); $this->output->newLine(1); }
/** * Add the Language middleware. * * @return void */ private function addLanguageMiddleware() { $this->info('Adding the Language middelware...'); $this->helper->copyFile($this->pathPackageLanguageMiddleware, $this->config->paths->project->LanguageMiddleware); $this->bar->advance(); }