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重新实现PHP脚本引擎内置函数
Mar 06 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
Aug 03 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
Jan 27 PHP
php实现utf-8转unicode函数分享
Jan 06 PHP
Symfony2学习笔记之系统路由详解
Mar 17 PHP
ThinkPHP静态缓存简单配置和使用方法详解
Mar 23 PHP
php简单实现文件或图片强制下载的方法
Dec 06 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
Feb 07 PHP
PHP redis实现超迷你全文检索
Mar 04 PHP
PHP实现数组根据某个单元字段排序操作示例
Aug 01 PHP
Yii2框架中一些折磨人的坑
Dec 15 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 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
Fatal error: Call to undefined function curl_init()解决方法
2010/04/09 PHP
ThinkPHP3.1新特性之命名范围的使用
2014/06/19 PHP
PHP删除指定目录中的所有目录及文件的方法
2015/02/26 PHP
万能的php分页类
2017/07/06 PHP
PHP生成加减算法方式的验证码实例
2018/03/12 PHP
JS关闭窗口或JS关闭页面的几种代码分享
2013/10/25 Javascript
JS与C#编码解码
2013/12/03 Javascript
JavaScript实现表格点击排序的方法
2015/05/11 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
Vue入门之animate过渡动画效果
2018/04/08 Javascript
vuejs选中当前样式active的实例
2018/08/22 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
2019/01/08 jQuery
一文读懂ES7中的javascript修饰器
2019/05/06 Javascript
layer插件实现在弹出层中弹出一警告提示并关闭弹出层的方法
2019/09/24 Javascript
[02:40]DOTA2英雄基础教程 先知
2013/11/29 DOTA
[01:14]TI珍贵瞬间系列(六):冠军
2020/08/30 DOTA
python使用内存zipfile对象在内存中打包文件示例
2014/04/30 Python
Django+zTree构建组织架构树的方法
2019/08/21 Python
python numpy存取文件的方式
2020/04/01 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
2020/01/06 Python
Python爬虫如何应对Cloudflare邮箱加密
2020/06/24 Python
opencv 形态学变换(开运算,闭运算,梯度运算)
2020/07/07 Python
Python爬虫之Selenium多窗口切换的实现
2020/12/04 Python
详解使用HTML5 Canvas创建动态粒子网格动画
2016/12/14 HTML / CSS
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
KENZO官网:高田贤三在法国创立的品牌
2019/05/16 全球购物
Gibson London官网:以地道的英国男装而著称
2019/12/06 全球购物
酒店司机岗位职责
2013/12/14 职场文书
高中生学期学习自我评价
2014/02/24 职场文书
高中生班主任评语
2014/04/25 职场文书
广告学专业毕业生自荐信
2014/05/28 职场文书
2015年科研工作总结范文
2015/05/13 职场文书
mysql部分操作
2021/04/05 MySQL
laravel添加角色和模糊搜索功能的实现代码
2021/06/22 PHP
Win11筛选键导致键盘失灵怎么解决? Win11关闭筛选键的技巧
2022/04/08 数码科技