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 相关文章推荐
输出控制类
Oct 09 PHP
PHP文本操作类
Nov 25 PHP
PHP中for与foreach的区别分析
Mar 09 PHP
如何用phpmyadmin设置mysql数据库用户的权限
Jan 09 PHP
PHP提示Notice: Undefined variable的解决办法
Nov 24 PHP
Linux环境下搭建php开发环境的操作步骤
Jun 17 PHP
使用php的HTTP请求的库Requests实现美女图片墙
Feb 22 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
Apr 17 PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
Jun 19 PHP
大家在抢红包,程序员在研究红包算法
Aug 31 PHP
关于php几种字符串连接的效率比较(详解)
Feb 22 PHP
Yii输入正确验证码却验证失败的解决方法
Jun 06 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初学者头痛的十四个问题
2006/07/12 PHP
PR值查询 | PageRank 查询
2006/12/20 PHP
PHP 定界符 使用技巧
2009/06/14 PHP
phpfpm的作用和用法
2019/10/10 PHP
屏蔽F1~F12的快捷键的js函数
2010/05/06 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
JavaScript闭包函数访问外部变量的方法
2014/08/27 Javascript
jQuery+slidereveal实现的面板滑动侧边展出效果
2015/03/14 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
原生js实现弹出层效果
2017/01/20 Javascript
JavaScript原生数组Array常用方法
2017/04/06 Javascript
JS中注入eval, Function等系统函数截获动态代码
2019/04/03 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
vue 使用v-for进行循环的实例代码详解
2020/02/19 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
2020/10/21 Javascript
[00:12]DAC2018 天才少年转战三号位,他的SOLO是否仍如昔日般强大?
2018/04/06 DOTA
Python编程实现生成特定范围内不重复多个随机数的2种方法
2017/04/14 Python
requests和lxml实现爬虫的方法
2017/06/11 Python
python利用正则表达式排除集合中字符的功能示例
2017/10/10 Python
python学习基础之循环import及import过程
2018/04/22 Python
django初始化数据库的实例
2018/05/27 Python
33个Python爬虫项目实战(推荐)
2019/07/08 Python
Python实现图片识别加翻译功能
2019/12/26 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
html5中audio支持音频格式的解决方法
2018/08/24 HTML / CSS
iframe在移动端的缩放的示例代码
2018/10/12 HTML / CSS
高清安全摄像头系统:Lorex Technology
2018/07/20 全球购物
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
乡镇网格化管理实施方案
2014/03/23 职场文书
竞选学委演讲稿
2014/09/13 职场文书
统计员岗位职责范本
2015/04/14 职场文书
硕士毕业答辩开场白
2015/05/27 职场文书
高二化学教学反思
2016/02/22 职场文书
2016年校园社会综合治理宣传月活动总结
2016/03/16 职场文书
星际争霸 Light vs Action 一场把教主看到鬼畜的比赛
2022/04/01 星际争霸