老莫的笔记本  
  
查看: 937|回复: 4

TP5 如何读取配置项

[复制链接]

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
发表于 2018-7-30 22:54:27 | 显示全部楼层 |阅读模式
一:读取配置项
1.类方法: Config::get('配置参数'),参数为空 则获取全部配置项;
2.使用助手函数:config('配置项'),参数说明与 Config::get()完全一样;
3.读取二级配置项,参数与值之间用(点)进行链接。
  1. <?php
  2.     namespace app\test\controller;
  3.     // 简化代码第一步
  4.     use think\config;
  5.     class Yunsuan
  6.     {
  7.         // 读取配置项
  8.         public function getP()
  9.         {
  10.             // 1.类方法
  11.             // dump(\think\config::get('my_info'));
  12.             // dump(\think\config::get('my_info.my_name'));
  13.             
  14.             // 2.助手函数
  15.             dump( config('my_info'));
  16.             dump( config('my_info.my_name'));
  17.             // 查询是否存在
  18.             // dump(\think\config::has('my_info'));
  19.             // dump( config('?my_info'));
  20.             
  21.             // 简化代码第二步 前面的 \think\ 可以不写了
  22.             dump(Config::get('my_info'));
  23.         }
  24.     }
  25. ?>
复制代码



二:判断某配置项是否存在?
1.类方法: Config::has('配置项');   //返回布尔值
2.助手函数: config('?配置项');    // 返回布尔值












回复

使用道具 举报

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
 楼主| 发表于 2018-7-30 23:24:22 | 显示全部楼层
动态配置配置项:1.类方法:  \think\Config.php
  1.1  逐个配置:  Config::set('配置参数','参数值');
  1.2  批量配置:  Config::set(数组);
  1.3  二级配置:  Config::set('配置参数','数组');
  1. public function setLm()
  2.         {
  3.             // 动态设置配置项
  4.             // 1. 逐个配置
  5.             Config::set('kdl','meinv');
  6.             // dump(Config::get('kdl'));
  7.             // 2.批量配置
  8.             $arryk = [
  9.                 'age' =>'30',
  10.                 'pifei' => 'bai',
  11.                 'wangt' => 'kis',
  12.             ];
  13.             Config::set($arryk); // 这每一项都是一个配置
  14.             // 3.二级配置   就看上面 把批量配置 整成一个配置项
  15.             Config::set('akdl',$arryk);
  16.             
  17.             dump(Config::get());
  18.         
  19.         }
复制代码

2. 助手函数:  config()
  2.1  逐个配置: config('配置参数','参数值');
  2.2  批量配置: config(数组);



回复

使用道具 举报

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
 楼主| 发表于 2018-7-30 23:41:06 | 显示全部楼层
独立配置文件
1.用户自定义的独立配置文件必须放在应用或模块下面的extra目录下面;
2.默认独立配置文件 database.php[数据库] , validate.php[验证规则] 既可以放在extra 下面, 也可以放在应用或模块同级的目录下面,
  (如果放在extra目录下面,优先级大于放在应用或模块的同级目录下面 );
  【在实际情况中,我配置在 app/extra/database.php 中的值 没有覆盖掉 app/database.php 下的值 ,具体用法需要验证。】

3.文件名就是配置项,文件返回一个数组;

注意:独立配置全是二级配置;
回复

使用道具 举报

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
 楼主| 发表于 2018-7-31 00:17:39 | 显示全部楼层
配置优先级:
动态配置 > 模块配置 >应用配置 > 惯例配置        【动态配置的值覆盖掉模块配置的值  依次类推】;
【 在  应用配置中 :  场景配置 > 独立配置 >应用配置】;
回复

使用道具 举报

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
 楼主| 发表于 2018-7-31 00:34:03 | 显示全部楼层
配置项的作用域:
1. 作用域与命名空间的概念类似,就是配置项的可见范围;
2. 作用域的表现形式上与二维数组是一样的;
3. 切换作用域使用: Config::range('作用域');
4. 可以将独立配置归纳到作用域进行管理,也可以动态配置。
  1.         public function index()
  2.         {
  3.             //设置一组配置项
  4.             $config = [
  5.                 'user_name' => 'Perter',
  6.                 'user_age' =>28,
  7.             ];
  8.             //批量设置,写入user作用域
  9.             Config::set($config,'user');
  10.             //输入全部配置项,作用域相当于二级配置项的名称
  11.             dump(Config::get());
  12.             //用数组的方式来配置作用域中的值
  13.             Config::set('user.user_name','php_cn');
  14.             //查看设置好的值
  15.             dump(Config::get('user.user_name'));
  16.         }
复制代码
说实话,我没闹明白,然后 我又看了一段,还是没明白:配置项的作用域与二级配置不同,当使用Config::range('user')切换了作用域后原来系统作用域的值不可见了,除非用Config::get('app_debug','_sys_')的第二个参数指定要访问的作用域。使用Config::set('user_name','Peter','user')设置了作用域参数后,在_sys_作用域中也是看不到的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表