# Zhamao Framework: ZMConfig类 参考

ZMConfig类 参考

## Public 成员函数

| __construct (array $config_paths=[], string $environment='uninitiated')
| loadFiles ()
| merge (string $key, array $config)
| get (string $key, mixed $default=null)
| set (array|string $key, mixed $value=null)
| addConfigPath (string $path)
| getEnvironment ()
| setEnvironment (string $environment)
| reload ()
| getHolder ()
| getTrace (string $key)

## 成员变量

const | ALLOWED_FILE_EXTENSIONS = ['php', 'yaml', 'yml', 'json', 'toml']
const | LOAD_ORDER = ['default', 'environment', 'patch']
const | DEFAULT_CONFIG_PATH = SOURCE_ROOT_DIR . '/config'

## 静态 Public 属性

static array | $environment_alias

## 构造及析构函数说明

## __construct()

__construct | ( | array | $config_paths = `[]`,
|  | string | $environment = `'uninitiated'`
| ) |  |

构造配置实例

参数

  array | $config_paths | 配置文件路径
  string | $environment | 环境

异常

  ConfigException | 配置文件加载出错

函数调用图:

## 成员函数说明

## addConfigPath()

addConfigPath | ( | string | $path | ) |

添加配置文件路径

参数

  string | $path | 路径

## get()

get | ( | string | $key,
|  | mixed | $default = `null`
| ) |  |

获取配置项

参数

  string | $key | 配置项名称，可使用.访问数组
  mixed | $default | 默认值

返回
  null|array|mixed

## getEnvironment()

getEnvironment | ( |  | ) |

获取当前环境

返回
  string 当前环境

## getHolder()

getHolder | ( |  | ) |

获取内部配置容器

## getTrace()

getTrace | ( | string | $key | ) |

获取配置项的来源

参数

  string | $key | 配置项

返回
  null|string 来源，如果没有找到，返回 null

函数调用图:

## loadFiles()

loadFiles | ( |  | ) |

加载配置文件

异常

  ConfigException |

函数调用图:

## merge()

merge | ( | string | $key,
|  | array | $config
| ) |  |

合并传入的配置数组至指定的配置项

请注意内部实现是 array_replace_recursive，而不是 array_merge

参数

  string | $key | 目标配置项，必须为数组
  array | $config | 要合并的配置数组

## reload()

reload | ( |  | ) |

重载配置文件 运行期间新增的配置文件不会被加载哟~

异常

  ConfigException |

函数调用图:

## set()

set | ( | array|string | $key,
|  | mixed | $value = `null`
| ) |  |

设置配置项 仅在本次运行期间生效，不会保存到配置文件中哦

如果传入的是数组，则会将键名作为配置项名称，并将值作为配置项的值 顺带一提，数组支持批量设置

参数

  array | string | $key | 配置项名称，可使用.访问数组
  mixed | $value | 要写入的值，传入 null 会进行删除

## setEnvironment()

setEnvironment | ( | string | $environment | ) |

设置当前环境

变更环境后，将会自动调用 `reload` 方法重载配置

参数

  string | $environment | 目标环境

函数调用图:

## 结构体成员变量说明

## $environment_alias

array $environment_alias

static

初始值:
= [
'dev' => 'development',
'test' => 'testing',
'prod' => 'production',
]

## ALLOWED_FILE_EXTENSIONS

const ALLOWED_FILE_EXTENSIONS = ['php', 'yaml', 'yml', 'json', 'toml']

## DEFAULT_CONFIG_PATH

const DEFAULT_CONFIG_PATH = SOURCE_ROOT_DIR . '/config'

## LOAD_ORDER

const LOAD_ORDER = ['default', 'environment', 'patch']

该类的文档由以下文件生成:

- src/ZM/Config/ZMConfig.php