thinkPHP5.0框架配置格式、加载解析与读取方法


Posted in PHP onMarch 17, 2017

本文实例讲述了thinkPHP5.0框架配置格式、加载解析与读取方法。分享给大家供大家参考,具体如下:

ThinkPHP支持多种格式的配置格式,但最终都是解析为PHP数组的方式。

PHP数组定义

返回PHP数组的方式是默认的配置定义格式,例如:

//项目配置文件
return [
  // 默认模块名
  'default_module'    => 'index',
  // 默认控制器名
  'default_controller'  => 'Index',
  // 默认操作名
  'default_action'    => 'index',
  //更多配置参数
  //...
];

配置参数名不区分大小写(因为无论大小写定义都会转换成小写),新版的建议是使用小写定义配置参数的规范。

还可以在配置文件中可以使用二维数组来配置更多的信息,例如:

//项目配置文件
return [
  'cache'         => [
    'type'  => 'File',
    'path'  => CACHE_PATH,
    'prefix' => '',
    'expire' => 0,
  ],
];

其他配置格式支持

除了使用原生PHP数组之外,还可以使用json/xml/ini等其他格式支持(通过驱动的方式扩展)。

例如,我们可以使用下面的方式读取json配置文件:

Config::parse(APP_PATH.'config/config.json');

ini格式配置示例:

DEFAULT_MODULE=Index ;默认模块
URL_MODEL=2 ;URL模式
SESSION_AUTO_START=on ;是否开启session

xml格式配置示例:

<config>
<default_module>Index</default_module>
<url_model>2</url_model>
<session_auto_start>1</session_auto_start>
</config>

json格式配置示例:

{
"default_module":"Index",
"url_model":2,
"session_auto_start":True
}

二级配置

配置参数支持二级,例如,下面是一个二级配置的设置和读取示例:

$config = [
  'user' => ['type'=>1,'name'=>'thinkphp'],
  'db'  => ['type'=>'mysql','user'=>'root','password'=>''],
];
// 设置配置参数
Config::set($config);
// 读取二级配置参数
echo Config::get('user.type');
// 或者使用助手函数
echo config('user.type');

系统不支持二级以上的配置参数读取,需要手动分步骤读取。

有作用域的情况下,仍然支持二级配置的操作。

如果采用其他格式的配置文件的话,二级配置定义方式如下(以ini和xml为例):

[user]
type=1
name=thinkphp
 [db]
type=mysql
user=rot
password=''

标准的xml格式文件定义:

<config>
<user>
<type>1</type>
<name>thinkphp</name>
</user>
<db>
<type>mysql</type>
<user>root</user>
<password></password>
</db>
</config>

set方法也支持二级配置,例如:

Config::set([
  'type'   => 'file',
  'prefix'  => 'think'
],'cache');

读取配置参数

设置完配置参数后,就可以使用get方法读取配置了,例如:

echo Config::get('配置参数1');

系统为get方法定义了一个助手config,以上可以简化为:

echo config('配置参数1');

读取所有的配置参数:

dump(Config::get());
// 或者 dump(config());

或者你需要判断是否存在某个设置参数:

Config::has('配置参数2');

如果需要读取二级配置,可以使用:

echo Config::get('配置参数.二级参数');

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
高亮度显示php源代码
Oct 09 PHP
PHP初学入门
Nov 19 PHP
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
Jul 31 PHP
php中filter函数验证、过滤用户输入的数据
Jan 13 PHP
PHP错误和异长常处理总结
Mar 06 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
Oct 30 PHP
PHP实现获取FLV文件的时间
Feb 10 PHP
discuz图片顺序混乱解决方案
Jul 29 PHP
PHP获取某个月最大天数(最后一天)的方法
Jul 29 PHP
PHP Laravel 上传图片、文件等类封装
Aug 16 PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
Mar 22 PHP
PHP数组array类常见操作示例
May 15 PHP
thinkPHP5.0框架独立配置与动态配置方法
Mar 17 #PHP
PHP中类的自动加载的方法
Mar 17 #PHP
thinkPHP5.0框架简单配置作用域的方法
Mar 17 #PHP
thinkPHP5.0框架环境变量配置方法
Mar 17 #PHP
php正则判断是否为合法身份证号的方法
Mar 16 #PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
Mar 16 #PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
Mar 16 #PHP
You might like
深入理解PHP原理之错误抑制与内嵌HTML分析
2011/05/02 PHP
PHP文件锁定写入实例解析
2014/07/14 PHP
PHP图像处理类库及演示分享
2015/05/17 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
超强多功能php绿色集成环境详解
2017/01/25 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
php curl发送请求实例方法
2019/08/01 PHP
关闭浏览器时提示onbeforeunload事件
2013/12/25 Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
2015/03/31 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
2015/08/14 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
10个在JavaScript开发中常遇到的BUG
2017/12/18 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
jQuery实现查看图片功能
2020/12/01 jQuery
python使用PythonMagick将jpg图片转换成ico图片的方法
2015/03/26 Python
python遍历文件夹下所有excel文件
2018/01/03 Python
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
django 解决manage.py migrate无效的问题
2018/05/27 Python
python http基本验证方法
2018/12/26 Python
python3实现逐字输出的方法
2019/01/23 Python
基于Python下载网络图片方法汇总代码实例
2020/06/24 Python
基于Python爬取fofa网页端数据过程解析
2020/07/13 Python
浅析NumPy 切片和索引
2020/09/02 Python
python中count函数知识点浅析
2020/12/17 Python
使用HTML5在网页中嵌入音频和视频播放的基本方法
2016/02/22 HTML / CSS
享誉全球的多元化时尚精品购物平台:Farfetch发发奇(支持中文)
2017/08/08 全球购物
终端业务员岗位职责
2013/11/27 职场文书
中专生自我鉴定范文
2014/02/02 职场文书
仓库管理员岗位职责
2014/03/19 职场文书
学校学习雷锋活动总结
2014/07/03 职场文书
小学生暑假安全保证书
2015/07/13 职场文书
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/04/22 无线电
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers