Swoft2 配置详解

Swoft2 配置详解

更多资料请关注 swoft 系列教程、
小白系列教程 定期连载

基本功能介绍

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

Swoft2 的配置分为两类,环境配置和应用配置。

  • env 一般配置一些和环境相关的一些参数,比如运行模式、资源地址

  • config 一般用于配置应用级别的配置以及业务级别的配置

简单的示例

环境配置说明

在项目的根目录有一个 .env.example 如果要使用则把文件修改成 .env,配置就可以在里面使用。

根目录下 .env文件,内容如下

  1. APP_DEBUG = 0
  2. SWOFT_DEBUG = 0
  3. env = test

这里的 env 属性定义 在后面会用到.用于区分是什么环境,这里定义了测试环境.

环境配置的使用

  1. env(string $key = null, $default = null)
  • $key 配置参数key,如:APP_DEBUG

  • $default 默认参数,当key不存在的时候返回default

env 还有另一个功能,就是可以把操作系统的环境变量加载到内存里面。

  1. echo env('PATH');

输出操作系统的环境变量 PATH

应用配置说明

应用配置主要用于业务级别的配置

在 app/bean.php 添加如下配置,不添加默认就是应用根目录下的 config

  1. return [
  2. ...
  3. 'config' => [
  4. 'path' => __DIR__ . '/../config',
  5. 'env' => env('env',"dev") //这个我们在环境变量里声明了,用于不同环境加载不同的配置文件
  6. ],
  7. ...
  8. ];

可配置项:

  • path 自定配置文件路径

  • env 配置当前环境比如 test

应用配置是负责应用里面的配置管理,负责第三方sdk的配置信息和开发者定义的配置;应用配置的数据也是由一个bean管理的,如果我们想要配置第三方sdk或者新增自己定义的配置,只需要在 config 目录添加对应文件返回一个数组就可以了。

这里的配置是全局的,在应用里面可直接使用。

config/pay.php

  1. return [
  2. 'notify_url' => 'http://127.0.0.1/remote',
  3. ];

获取配置的方式有三种,我们这里介绍两种本人推荐的,全局助手函数和注解,对象获取不在此介绍,如果需要了解请查看官方文档

配置使用

全局助手函数 config()

  1. config(string $key = null, $default = null)
  • $key 配置参数key,如:config/pay.php 获取方式就是 config(‘pay.notify_url’,’’)

  • $default 默认参数,当key不存在的时候返回default

注解

在要使用配置的地方可以把配置注入到类的成员属性。

  1. use Swoft\Config\Annotation\Mapping\Config;
  2. /**
  3. * @Config("pay.notify_url")
  4. * @var mixed
  5. */
  6. private $notify_url;

不同环境相同配置

需要在 bean.php 里的 config 属性设置了 env属性,来定义加载哪些配置

如果想要在不同环境配置不同的配置,例如在测试环境一套配置,生产环境一套配置,我们可以通过文件夹的方式来区分。

测试环境

config/test/time.php

  1. return [
  2. 'date' => '2019-11-28 for test'
  3. ];

开发环境

config/dev/time.php

  1. return [
  2. 'date' => '2019-11-28 for dev'
  3. ];

获取上面的配置的方式 config('time.date')

这个配置使用的配置是 config/dev/time.php; env 配置是在 config 对应的目录,例如:env 是 test 那么对应的文件就是 config/test/time.php

在控制器里简单使用

控制台输出

本作品采用《CC 协议》,转载必须注明作者和本文链接
wike2019 个人博客:8code.net/
wike
讨论数量: 1
Inhere

格式有点问题。。。 :joy:

多行代码 :

file

效果:

return [
   ...
   'config' => [
      'path' => __DIR__ . '/../config',
      'env' => env('env',"dev") //这个我们在环境变量里声明了,用于不同环境加载不同的配置文件
  ],
  ...
];
4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
前端 @ 塔人网络
文章
1
粉丝
1
喜欢
1
收藏
0
排名:1614
访问:1769
私信
所有博文
博客标签
社区赞助商