webman默认加载的配置文件是 根目录下config目录,多应用目录结构里面没有config目录。原本是想在不同的应用目录下创建一个config目录,通过config() 获取配置信息。
重写App类loadAllConfig()
/**
* 加载所有配置文件
* @param array $excludes
* @return void
*/
public static function loadAllConfig(array $excludes = [])
{
Config::load(config_path(), $excludes);
self::loadConfig(base_path() . '/app', 'app', $excludes);
self::loadConfig(base_path() . '/plugin', 'plugin', $excludes);
}
/**
* 加载指定目录下的配置文件
* @param string $directory
* @param string $namespace
* @param array $excludes
*/
private static function loadConfig(string $directory, string $namespace, array $excludes)
{
foreach (Util::scanDir("$directory", false) as $name) {
$config_directory = "$directory/$name/config";
if (is_dir($config_directory)) {
Config::load($config_directory, $excludes, "$namespace.$name");
}
}
}
会自动加载app/{应用目录}/config 下的php文件。
然后就可以使用:
config('app.{应用目录}.{具体的配置}');
多应用的配置信息会跟默认的 app配置合并。
'app' => [
// 默认的配置略...
'demo1' => [
'app' => [
'enable' => true,
'name' => '应用1',
'about' => '开发实例是帮助你快速入门开发',
'uri' => 'https://www.url.com',
'var' => '1.0.0',
'is_setting' => false,
'is_platform' => true,
'types' => 'web|wechatmp|wechatapp'
]
],
'demo2' => [
'app' => [
'enable' => true,
'name' => '应用2',
'about' => '开发实例是帮助你快速入门开发',
'uri' => 'https://www.url.com',
'var' => '1.0.0',
'is_setting' => false,
'is_platform' => true,
'types' => 'web|wechatmp|wechatapp'
]
]
]
初中文化,34岁,0基础学编程,很菜的那种,各位大佬走过路过指点一下轻喷。