🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 配置 ## 配置文件说明 默认情况下,项目里会有以下几个配置文件: ```bash $ tree ./config/ ./Config/ ├── app.php ├── dbs.php ├── di.php └── sys.php ``` 其中app.php为项目应用配置;dbs.php为分布式存储的数据库配置;sys.php为不同环境下的系统配置。这三个文件都是用于存放配置信息,可通过```\PhalApi\DI()->config```进行读取。 值得注意的是,```./config/di.php```文件则属于依赖注入配置文件,用于配置需在```\PhalApi\DI()```容器中注册的服务资源。 ## 配置的简单读取 默认已注册配置组件服务,名称是```\PhalApi\DI()->config```。 ```php // 配置 $di->config = new FileConfig(API_ROOT . '/config'); ``` 假设app.php配置文件里有: ```php return array( 'version' => '1.1.1', 'email' => array( 'address' => 'chanzonghuang@gmail.com', ); ); ``` 可以分别这样根据需要获取配置: ```php // app.php里面的全部配置 \PhalApi\DI()->config->get('app'); //返回:array( ... ... ) // app.php里面的单个配置 \PhalApi\DI()->config->get('app.version'); //返回:1.1.1 // app.php里面的多级配置 \PhalApi\DI()->config->get('app.email.address'); //返回:'chanzonghuang@gmail.com' ``` 其他配置文件的读取类似,你也可以根据需要添加新的配置文件。 ## 读取失败与默认值 当一个配置不存在时,返回NULL。例如: ```php \PhalApi\DI()->config->get('app.not_found'); //返回:NULL ``` 当需要指定默认值时,可通过第二个参数指定。例如: ```php \PhalApi\DI()->config->get('app.not_found', 404); //返回:404 ``` ## 使用Yaconf扩展快速读取配置 Yaconf扩展需要PHP 7及以上版本,并且需要先安装Yaconf扩展。 > **温馨提示:**Yaconf扩展的安装请参考[laruence/yaconf](https://github.com/laruence/yaconf)。 安装部署完成后,先重新注册```\PhalApi\DI()->config```: ```php // 配置 $di->config = new PhalApi\Config\YaconfConfig(); ``` 然后,便和正常的配置一样使用。 ``` // 相当于Yaconf::get("foo") \PhalApi\DI()->config->get('foo'); //相当于Yaconf::has("foo") \PhalApi\DI()->config->has('foo'); ``` 需要注意的是,使用Yaconf扩展与默认的文件配置的区别的是,配置文件的目录路径以及配置文件的格式。当然也可以把Yaconf扩展的配置目录路径设置到PhalApi的配置目录./config。 ## 扩展:其他配置读取方式 如果需要使用其他方式读取配置,可根据实情需要,实现[PhalApi\Config](https://github.com/phalapi/kernal/blob/master/src/Config.php)接口,然后在```./config/di.php```文件重新注册```\PhalApi\DI()->config```即可。 例如数据库配置,这样可以支持不发布代码的情况下进行配置更改。