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实现二分查找算法代码分享
Jun 24 PHP
php插入中文到sqlserver 2008里出现乱码的解决办法分享
Jul 19 PHP
PHP容易忘记的知识点分享
Apr 30 PHP
php使用strtotime和date函数判断日期是否有效代码分享
Dec 25 PHP
php遍历删除整个目录及文件的方法
Mar 13 PHP
学习php设计模式 php实现访问者模式(Visitor)
Dec 07 PHP
Smarty实现页面静态化(生成HTML)的方法
May 23 PHP
php微信开发之上传临时素材
Jun 24 PHP
thinkPHP实现的联动菜单功能详解
May 05 PHP
php中html_entity_decode实现HTML实体转义
Jun 13 PHP
Laravel中的chunk组块结果集处理与注意问题
Aug 15 PHP
PHP实现提高SESSION响应速度的几种方法详解
Aug 09 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对网站验证码进行破解
2015/09/17 PHP
WordPress中使主题支持小工具以及添加插件启用函数
2015/12/22 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
Ajax+Jpgraph实现的动态折线图功能示例
2019/02/11 PHP
PHP使用观察者模式处理异常信息的方法详解
2019/09/24 PHP
javascript Prototype 对象扩展
2009/05/15 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
通过jQuery源码学习javascript(二)
2012/12/27 Javascript
javaScript年份下拉列表框内容为当前年份及前后50年
2014/05/28 Javascript
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
2014/07/15 NodeJs
javascript 动态创建表格
2015/01/08 Javascript
JavaScript动态添加css样式和script标签
2016/07/19 Javascript
js实现前端分页页码管理
2017/01/06 Javascript
Angular2入门教程之模块和组件详解
2017/05/28 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
2017/09/14 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
JavaScript数组排序的六种常见算法总结
2020/08/18 Javascript
利用Python获取赶集网招聘信息前篇
2016/04/18 Python
python的dataframe和matrix的互换方法
2018/04/11 Python
Python 使用Numpy对矩阵进行转置的方法
2019/01/28 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
把django中admin后台界面的英文修改为中文显示的方法
2019/07/26 Python
Django之编辑时根据条件跳转回原页面的方法
2019/08/21 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
如何以Winsows Service方式运行JupyterLab
2020/08/30 Python
CSS3 绘制BMW logo实的现代码
2013/04/25 HTML / CSS
美国在线珠宝商店:SZUL
2017/02/11 全球购物
职工运动会感言
2014/02/07 职场文书
基层党组织公开承诺书
2014/03/28 职场文书
文明社区申报材料
2014/08/21 职场文书
2014年幼儿园园务工作总结
2014/12/05 职场文书
销售会议开幕词
2015/01/28 职场文书
2015年物业管理工作总结
2015/04/23 职场文书
初中政治教学反思
2016/02/23 职场文书
Python如何识别银行卡卡号?
2021/06/10 Python
MySQL系列之九 mysql查询缓存及索引
2021/07/02 MySQL