- 首页 > it技术 > >
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;
}
}
推荐阅读