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的5个入手程序
Nov 23 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
Jan 29 PHP
国外十大最流行的PHP框架排名
Jul 04 PHP
使用PHP实现阻止用户上传成人照片或者裸照
Dec 25 PHP
PHP中文乱码解决方案
Mar 05 PHP
CI框架的安全性分析
May 18 PHP
php+flash+jQuery多图片上传源码分享
Jul 27 PHP
php中static 静态变量和普通变量的区别
Dec 01 PHP
PHP封装的PDO数据库操作类实例
Jun 21 PHP
php strftime函数的详细用法
Jun 21 PHP
解决laravel(5.5)访问public报错的问题
Oct 12 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
Apr 26 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
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)
2013/06/01 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
2014/05/10 PHP
php session的锁和并发
2016/01/22 PHP
Swoole扩展的6种模式深入详解
2021/03/04 PHP
使javascript也能包含文件
2006/10/26 Javascript
jQuery LigerUI 使用教程表格篇(1)
2012/01/18 Javascript
javascript先序遍历DOM树的方法
2016/02/27 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
2016/07/28 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
2016/10/10 Javascript
Javascript中的prototype与继承
2017/02/06 Javascript
微信小程序 常用工具类详解及实例
2017/02/15 Javascript
js如何获取网页所有图片
2017/05/12 Javascript
ES6入门教程之let和const命令详解
2017/05/17 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
深入浅析Vue中的 computed 和 watch
2018/06/06 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
2019/04/28 Javascript
keep-alive保持组件状态的方法
2020/12/02 Javascript
解决基于 keep-alive 的后台多级路由缓存问题
2020/12/23 Javascript
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
python连接字符串的方法小结
2015/07/13 Python
python实现二叉树的遍历
2017/12/11 Python
详解pytorch tensor和ndarray转换相关总结
2020/09/03 Python
Canvas图片分割效果的实现
2019/07/29 HTML / CSS
世界上最全面的汽车零部件和配件集合:JC Whitney
2016/09/04 全球购物
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
nohup的用法
2012/11/26 面试题
成人大专自我鉴定范文
2013/10/19 职场文书
本科毕业生的求职信范文
2013/11/20 职场文书
前台文员个人求职信范文
2014/01/05 职场文书
学生干部学习的自我评价
2014/02/18 职场文书
毕业生自荐信如何写
2014/03/24 职场文书
市场总经理岗位职责
2014/04/11 职场文书
民政工作个人总结
2015/02/28 职场文书
公司周年庆典致辞
2015/07/30 职场文书
学校体育节班级口号
2015/12/25 职场文书