thinkphp6读取配置文件中环境变量定义的方法
2022-11-24 11:10:29
201
0

env配置定义及获取

1.其中两项配置app_debug、config_ext只在.env生效 参见开启调试模式及代码跟踪器
2.除了一级配置外,配置参数名严格区分大小写,建议是使用小写定义配置参数的规范。

配置定义格式:

APP_DEBUG = true;数据库配置项[DATABASE]TYPE = mysqlHOSTNAME = 127.0.0.1DATABASE = testUSERNAME = usernamePASSWORD = password[LANG]default_lang = zh-cn;数组形式ARR[]=1ARR[]=2;数组形式[TEST]PATHINFO_PATH[] =ORIG_PATH_INFOPATHINFO_PATH[] =REDIRECT_PATH_INFOPATHINFO_PATH[] =REDIRECT_URL

env( 环境变量定义)的获取

首先要引入env的命名空间

use think\facade\Env;//然后在控制器类的方法中调用Env的get方法public function getenv(){//获取环境变量 如果不存在则使用默认值qipa250echo 'qipa250_lang='.Env::get('lang.qipa250_lang','qipa250');echo '<br>';echo 'default_lang='.Env::get('lang.default_lang');}

浏览器中访问,打印结果如下:
在这里插入图片描述因为qipa250_lang变量不存在,所以就使用默认的值qipa250
default_lang的值存在则得到配置文件中的值

配置文件中使用环境变量

可以直接在配置文件中使用环境变量进行本地环境和服务器的自动配置

<?phpuse think\facade\Env;return [// 数据库类型'type'=> Env::get('database.type', 'mysql'),// 服务器地址'hostname'=> Env::get('database.hostname', '127.0.0.1'),// 数据库名'database'=> Env::get('database.database', 'tp6'),// 用户名'username'=> Env::get('database.username', 'root'),// 密码'password'=> Env::get('database.password', '123456'),// 端口'hostport'=> Env::get('database.hostport', '3306'),

配置文件的配置获取

首先需要在你的类文件中引入Config类,然后就可以使用下面的方法读取某个配置参数的值

use think\facade\Config; // 获取配置先把命名空间拿进来

读取一级配置的所有参数(每个配置文件都是独立的一级配置)

Config::get('app');Config::get('route');

读取单个配置参数

Config::get('app.app_name');Config::get('route.url_domain_root');

读取数组配置(理论上支持无限级配置参数读取)

Config::get('database.default.host');

判断是否存在某个设置参数:

Config::has('template');Config::has('route.route_rule_merge');

参数批量设置

Config类不再支持动态设置某个配置参数,但可以支持批量设置更新配置参数。

// 批量设置参数Config::set(['name1' => 'value1', 'name2' => 'value2'], 'config');// 获取配置Config::get('config');
全部回帖(0)
加载中...