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怎样调用MSSQL的存储过程
Oct 09 PHP
php+mysql写的简单留言本实例代码
Jul 25 PHP
PHP中防止SQL注入实现代码
Feb 19 PHP
PHP中集成PayPal标准支付的实现方法分享
Feb 06 PHP
分享一下贝贝成长进度的php代码
Sep 14 PHP
PHP 简易输出CSV表格文件的方法详解
Jun 20 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
Aug 23 PHP
Laravel 5框架学习之环境与配置
Apr 08 PHP
php生成图片验证码-附五种验证码
Aug 19 PHP
PHP 中提示undefined index如何解决(多种方法)
Mar 16 PHP
php及codeigniter使用session-cookie的方法(详解)
Apr 06 PHP
PHP实现的解汉诺塔问题算法示例
Aug 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
动态生成gif格式的图像要注意?
2006/10/09 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
2014/09/09 PHP
浅析Yii2中GridView常见操作
2016/04/22 PHP
js 操作符实例代码
2009/10/24 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
jquery mobile动态添加元素之后不能正确渲染解决方法说明
2014/03/05 Javascript
node.js中的querystring.escape方法使用说明
2014/12/10 Javascript
AngularJS内置指令
2015/02/04 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
js实现仿微博滚动显示信息的效果
2015/12/21 Javascript
CodeMirror js代码加亮使用总结
2017/03/25 Javascript
关于使用axios的一些心得技巧分享
2017/07/02 Javascript
vue增删改查的简单操作
2017/07/15 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
2019/04/08 Javascript
Vue实现附件上传功能
2020/05/28 Javascript
[06:13]DOTA2进化论(修改版)
2013/10/08 DOTA
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
python使用邻接矩阵构造图代码示例
2017/11/10 Python
python调用staf自动化框架的方法
2018/12/26 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
2019/04/11 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
2019/10/25 Python
python虚拟环境模块venv使用及示例
2020/03/04 Python
keras.layer.input()用法说明
2020/06/16 Python
纯CSS3实现带动画效果导航菜单无需js
2013/09/27 HTML / CSS
html5构建触屏网站之touch事件介绍
2013/01/07 HTML / CSS
Europcar比利时:租车
2019/08/26 全球购物
银行类自荐信
2014/02/04 职场文书
运动会入场词50字
2014/02/20 职场文书
班级标语大全
2014/06/21 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
个人批评与自我批评材料
2014/10/17 职场文书
亮剑观后感500字
2015/06/05 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书
《确定位置》教学反思
2016/02/18 职场文书