phalapi可以依赖注入么_3.2 PhalApi 配置

默认情况下,项目里会有以下几个配置文件:

$ 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。

// 配置

$di->config = new FileConfig(API_ROOT . '/config');

假设app.php配置文件里有:

return array(

'version' => '1.1.1',

'email' => array(

'address' => 'chanzonghuang@gmail.com',

);

);

可以分别这样根据需要获取配置:

// 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。例如:

\PhalApi\DI()->config->get('app.not_found'); //返回:NULL

当需要指定默认值时,可通过第二个参数指定。例如:

\PhalApi\DI()->config->get('app.not_found', 404); //返回:404

自从PhalApi 2.8.0及上以版本开始,区分隐式静默和显式异常两种模式,可通过\PhalApi\DI()->debug全局模式或初始化时指定调试模式。为调试模式时,若配置不存在将500异常提示;非调试模式时(即生产环境时),若配置文件不存在则不会抛异常,也不会出现之前的Warning提示,以免影响接口的正常返回。

Yaconf扩展需要PHP 7及以上版本,并且需要先安装Yaconf扩展。温馨提示:Yaconf扩展的安装请参考laruence/yaconf。

安装部署完成后,先重新注册\PhalApi\DI()->config:

// 配置

$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接口,然后在./config/di.php文件重新注册\PhalApi\DI()->config即可。

例如数据库配置,这样可以支持不发布代码的情况下进行配置更改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值