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程序效率优化的一些策略小结
Jul 17 PHP
PHP json_encode中文乱码问题的解决办法
Sep 09 PHP
PHP5.5在windows安装使用memcached服务端的方法
Apr 16 PHP
php递归创建目录的方法
Feb 02 PHP
php递归遍历删除文件的方法
Apr 17 PHP
php+ajax 实现输入读取数据库显示匹配信息
Oct 08 PHP
抛弃 PHP 代价太高
Apr 26 PHP
php显示页码分页类的封装
Jun 08 PHP
PHP实现创建微信自定义菜单的方法示例
Jul 14 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 PHP
PHP中OpenSSL加密问题整理
Dec 14 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基础陷阱题(变量赋值)
2012/09/12 PHP
PHP获取指定日期是星期几的实现方法
2016/11/30 PHP
PHP正则判断一个变量是否为正整数的方法
2019/02/27 PHP
php+lottery.js实现九宫格抽奖功能
2019/07/21 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
firefox中用javascript实现鼠标位置的定位
2007/06/17 Javascript
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
Raphael带文本标签可拖动的图形实现代码
2013/02/20 Javascript
JavaScript实现自己的DOM选择器原理及代码
2013/03/04 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
使用npm发布Node.JS程序包教程
2015/03/02 Javascript
jquery性能优化高级技巧
2015/08/24 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
2016/05/16 Javascript
浅谈js中对象的使用
2016/08/11 Javascript
详解react使用react-bootstrap当轮子造车
2017/08/15 Javascript
jQuery实现的手动拖动控制进度条效果示例【测试可用】
2018/04/18 jQuery
vuejs实现折叠面板展开收缩动画效果
2018/09/06 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
2019/04/07 Javascript
JavaScript运行机制实例分析
2020/04/11 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
2020/07/11 Javascript
Vue element-ui父组件控制子组件的表单校验操作
2020/07/17 Javascript
vue+Element-ui前端实现分页效果
2020/11/15 Javascript
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[49:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第二场 3月4日
2021/03/11 DOTA
用Python代码来绘制彭罗斯点阵的教程
2015/04/03 Python
Python socket编程实例详解
2015/05/27 Python
PyCharm鼠标右键不显示Run unittest的解决方法
2018/11/30 Python
计算机通信工程专业毕业生推荐信
2013/12/24 职场文书
离职证明范本(5篇)
2014/09/19 职场文书
教师工作总结范文2014
2014/11/10 职场文书
2014年工程工作总结
2014/11/25 职场文书
匿名检举信范文
2015/03/02 职场文书
2016年母亲节广告语
2016/01/28 职场文书
创新创业项目计划书该怎样写?
2019/08/13 职场文书
启迪人心的励志语录:脾气永远不要大于本事
2020/01/02 职场文书
vue实现可拖拽的dialog弹框
2021/05/13 Vue.js