[TOC] > [github](https://github.com/hassankhan/config) ## 安装 `composer require hassankhan/config` ## 概述 可以解析 json , xml , ini , yaml ### 解析 ini config.ini ``` host = localhost port = 80 servers[] = host1 servers[] = host2 servers[] = host3 [application] name = configuration secret = s3cr3t ``` ``` $conf = \Noodlehaus\Config::load("config.ini"); $var = $conf->get("servers"); /** * array ( 'host1', 'host2', 'host3', ) */ ``` ### 解析 json config.json ``` { "application": { "name": "configuration", "secret": "s3cr3t" }, "host": "localhost", "port": 80, "servers": [ "host1", "host2", "host3" ] } ``` ``` $conf = \Noodlehaus\Config::load("config.json"); $var = $conf->get("servers"); /** * array ( 'host1', 'host2', 'host3', ) */ ``` ## 解析 yaml 需要 在安装依赖 `composer require symfony/yaml` ``` $conf = \Noodlehaus\Config::load("config.yaml"); $var = $conf->get("servers"); /** * array ( 'host1', 'host2', 'host3', ) */ ``` ### 批量导入 配置 ``` //指定文件 $conf = new Config(['config.json', 'config.xml']); // 制定目录下的所有文件 $conf = new Config(__DIR__ . '/config'); ``` ### 配置格式转换 ``` $config = Config::load('config.json'); $ini = $config->toString(new Ini()); // Encode to string if you want to save the file yourself $config->toFile('config.yaml'); ``` ### 合并配置文件 ``` $conf1 = Config::load('conf1.json'); $conf2 = Config::load('conf2.json'); $conf1->merge($conf2); ```