Php 我怎样才能让laravel4 Config::像那样工作?
我是拉威尔初学者 我发现一个laravel 4脚本使用config目录中的文件以如下方式定义站点: 站点的配置位于:目录(config/site) 示例:app/config/site/video.phpPhp 我怎样才能让laravel4 Config::像那样工作?,php,laravel,laravel-4,config,setting,Php,Laravel,Laravel 4,Config,Setting,我是拉威尔初学者 我发现一个laravel 4脚本使用config目录中的文件以如下方式定义站点: 站点的配置位于:目录(config/site) 示例:app/config/site/video.php return [ 'max-size-upload-video' => [ 'type' => 'integer', 'title' => 'Set Maximum Size Upload Video', 'descri
return [
'max-size-upload-video' => [
'type' => 'integer',
'title' => 'Set Maximum Size Upload Video',
'description' => 'Set the maximum size upload of videos',
'value' => '10000000',
],
];
在控制器中
Config::get('max-size-upload-video')
用于获取值,这不是Config::get的正常行为
我的问题是我怎样才能做出这样的东西?
如何使Config::get('the-property-title')在不写出完整路径的情况下为我获取值,就像使用Config::get的正常方法一样,light\Foundation\bootstrap\LoadConfiguration类在应用程序引导过程中加载配置文件。如果您想更改配置文件的加载方式,您需要通过扩展现有的加载程序来实现自己的加载程序。请注意只更改您自己的配置文件的加载方式-不要更改Laravel配置文件的加载方式 示例加载器:
class CustomLoadConfiguration extends LoadConfiguration
{
protected function loadConfigurationFiles(Application $app, RepositoryContract $config)
{
foreach ($this->getConfigurationFiles($app) as $key => $path) {
if ($key === 'video') {
$values = require $path;
if (is_array($values)) {
foreach ($values as $k => $value) {
$config->set($k, $value);
}
} else $config->set($key, $values);
} else {
$config->set($key, require $path);
}
}
}
}
拥有自己的加载程序后,在应用程序\Http\Kernel类中添加以下内容:
protected function bootstrappers()
{
$bootstrappers = parent::bootstrappers();
if (($key = array_search($bootstrappers, 'Illuminate\Foundation\Bootstrap\LoadConfiguration')) !== FALSE) {
$bootstrappers[$key] = 'Your\Namespace\CustomLoadConfiguration';
}
return $bootstrappers;
}
警告:在你这么做之前,问问自己是否真的需要这个。配置文件的名称空间是为了避免冲突-如果禁用名称空间,则可能会将重复的密钥加载到不同的配置文件中,其中一个会覆盖另一个。很抱歉再次询问,我发现您的答案是针对laravel 5,我如何使用laravel 4实现同样的操作