Laravel 多环境配置

getCachedConfigPath())) { return; }// Next we will spin through all of the configuration files in the configuration // directory and load each one into the repository. This will make all of the // options available to the developer for use in various parts of this app. $config = app('config'); if (! isset($loadedFromCache) && env('APP_ENV') != 'production') { $this->loadConfigurationFiles($app, $config); } }/** * Load the configuration items from all of the files. * * @param\Illuminate\Contracts\Foundation\Application$app * @param\Illuminate\Contracts\Config\Repository$config * @return void */ protected function loadConfigurationFiles(Application $app, RepositoryContract $config) { $siteConfig = []; foreach ($this->getConfigurationFiles($app) as $key => $path) { array_set($siteConfig, $key, require $path); }$siteConfig = array_dot($siteConfig); foreach ($siteConfig as $key => $value) { $config->set($key, $value); } }/** * Get all of the configuration files for the application. * * @param\Illuminate\Contracts\Foundation\Application$app * @return array */ protected function getConfigurationFiles(Application $app) { $files = []; $env = env('APP_ENV', 'production'); $configPath = realpath($app->configPath()); if ($env != 'production') { $configPath= $configPath.DIRECTORY_SEPARATOR . $env; }if (!is_dir($configPath)) { return []; }foreach (Finder::create()->files()->name('*.php')->in($configPath) as $file) { $nesting = $this->getConfigurationNesting($file, $configPath); $files[$nesting.basename($file->getRealPath(), '.php')] = $file->getRealPath(); }return $files; }/** * Get the configuration file nesting path. * * @param\Symfony\Component\Finder\SplFileInfo$file * @paramstring$configPath * @return string */ protected function getConfigurationNesting(SplFileInfo $file, $configPath) { $directory = dirname($file->getRealPath()); if ($tree = trim(str_replace($configPath, '', $directory), DIRECTORY_SEPARATOR)) { $tree = str_replace(DIRECTORY_SEPARATOR, '.', $tree).'.'; }return $tree; } }

/** * App\Http\Kernel * @return array */ protected function bootstrappers() { $bootstrappers= parent::bootstrappers(); $bootstrappers[] = LoadSiteConfiguration::class; return $bootstrappers; } }

    推荐阅读