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连接MySQL代码的参数说明
Jun 07 PHP
PHP操作mysql函数详解,mysql和php交互函数
May 19 PHP
一致性哈希算法以及其PHP实现详细解析
Aug 24 PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
Jul 04 PHP
Sublime里直接运行PHP配置方法
Nov 28 PHP
PHP实现抓取Google IP并自动修改hosts文件
Feb 12 PHP
在html文件中也可以执行php语句的方法
Apr 09 PHP
php实现猴子选大王问题算法实例
Apr 20 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
Nov 05 PHP
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
Apr 03 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
Jul 12 PHP
php实现断点续传大文件示例代码
Jun 19 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/02/15 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
jQuery 1.0.2
2006/10/11 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
JS中如何判断传过来的JSON数据中是否存在某字段
2014/08/18 Javascript
javascript几个易错点记录
2014/11/26 Javascript
浅谈javascript的调试
2015/01/28 Javascript
jQuery模拟新浪微博首页滚动效果的方法
2015/03/11 Javascript
jQuery自动完成插件completer附源码下载
2016/01/04 Javascript
javascript实现用户点击数量统计
2016/12/25 Javascript
详解js的六大数据类型
2016/12/27 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
2017/02/23 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
2017/06/08 jQuery
详解vue mixins和extends的巧妙用法
2017/12/20 Javascript
js中getBoundingClientRect的作用及兼容方案详解
2018/02/01 Javascript
JS实现区分中英文并统计字符个数的方法示例
2018/06/09 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
javascript数据类型中的一些小知识点(推荐)
2019/04/18 Javascript
jquery多级树形下拉菜单的实例代码
2019/07/09 jQuery
从零使用TypeScript开发项目打包发布到npm
2020/02/14 Javascript
Python的批量远程管理和部署工具Fabric用法实例
2015/01/23 Python
使用python实现tcp自动重连
2017/07/02 Python
Python字符串逆序输出的实例讲解
2019/02/16 Python
Django CSRF跨站请求伪造防护过程解析
2019/07/31 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
2019/08/07 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
CSS3控制HTML元素动画效果
2014/02/08 HTML / CSS
HTML5实现表单自动验证功能实例代码
2017/01/11 HTML / CSS
香港莎莎官网Sasa.com:亚洲著名国际化妆品商城
2019/11/10 全球购物
《最可爱的人》教学反思
2014/02/14 职场文书
报告会主持词
2014/04/02 职场文书
辅导员评语
2014/05/04 职场文书
关于十八大的演讲稿
2014/09/15 职场文书
布达拉宫的导游词
2015/02/02 职场文书
社区法制宣传日活动总结
2015/05/05 职场文书
卫生保健工作总结2015
2015/05/18 职场文书