Swoft2 配置详解
Swoft2 配置详解
更多资料请关注 swoft 系列教程、
小白系列教程 定期连载
基本功能介绍
配置项是只读的,不能动态修改.所以不要尝试着动态修改配置
Swoft2 的配置分为两类,环境配置和应用配置。
-
env 一般配置一些和环境相关的一些参数,比如运行模式、资源地址
-
config 一般用于配置应用级别的配置以及业务级别的配置
简单的示例
环境配置说明
在项目的根目录有一个 .env.example 如果要使用则把文件修改成 .env,配置就可以在里面使用。
根目录下 .env文件,内容如下
APP_DEBUG = 0
SWOFT_DEBUG = 0
env = test
这里的 env 属性定义 在后面会用到.用于区分是什么环境,这里定义了测试环境.
环境配置的使用
env(string $key = null, $default = null)
-
$key 配置参数key,如:APP_DEBUG
-
$default 默认参数,当key不存在的时候返回default
env 还有另一个功能,就是可以把操作系统的环境变量加载到内存里面。
echo env('PATH');
输出操作系统的环境变量 PATH
应用配置说明
应用配置主要用于业务级别的配置
在 app/bean.php 添加如下配置,不添加默认就是应用根目录下的 config
return [
...
'config' => [
'path' => __DIR__ . '/../config',
'env' => env('env',"dev") //这个我们在环境变量里声明了,用于不同环境加载不同的配置文件
],
...
];
可配置项:
-
path 自定配置文件路径
-
env 配置当前环境比如 test
应用配置是负责应用里面的配置管理,负责第三方sdk的配置信息和开发者定义的配置;应用配置的数据也是由一个bean管理的,如果我们想要配置第三方sdk或者新增自己定义的配置,只需要在 config 目录添加对应文件返回一个数组就可以了。
这里的配置是全局的,在应用里面可直接使用。
config/pay.php
return [
'notify_url' => 'http://127.0.0.1/remote',
];
获取配置的方式有三种,我们这里介绍两种本人推荐的,全局助手函数和注解,对象获取不在此介绍,如果需要了解请查看官方文档
配置使用
全局助手函数 config()
config(string $key = null, $default = null)
-
$key 配置参数key,如:config/pay.php 获取方式就是 config(‘pay.notify_url’,’’)
-
$default 默认参数,当key不存在的时候返回default
注解
在要使用配置的地方可以把配置注入到类的成员属性。
use Swoft\Config\Annotation\Mapping\Config;
/**
* @Config("pay.notify_url")
* @var mixed
*/
private $notify_url;
不同环境相同配置
需要在 bean.php 里的 config 属性设置了 env属性,来定义加载哪些配置
如果想要在不同环境配置不同的配置,例如在测试环境一套配置,生产环境一套配置,我们可以通过文件夹的方式来区分。
测试环境
config/test/time.php
return [
'date' => '2019-11-28 for test'
];
开发环境
config/dev/time.php
return [
'date' => '2019-11-28 for dev'
];
获取上面的配置的方式 config('time.date')
这个配置使用的配置是 config/dev/time.php; env 配置是在 config 对应的目录,例如:env 是 test 那么对应的文件就是 config/test/time.php
在控制器里简单使用
控制台输出
本作品采用《CC 协议》,转载必须注明作者和本文链接
格式有点问题。。。 :joy:
多行代码 :
效果: