swoft2 教程系列-配置详解

基本功能介绍

配置项是只读的,不能动态修改.所以不要尝试着动态修改配置

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

在控制器里简单使用

控制台输出

发布了543 篇原创文章 · 获赞 32 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/weixin_36691991/article/details/105045295