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 缓冲的免费实现方法
Oct 09 PHP
实用函数4
Nov 08 PHP
php 获取完整url地址
Dec 20 PHP
解析PHP的session过期设置
Jun 29 PHP
php检测网页是否被百度收录的函数代码
Oct 09 PHP
推荐5款跨平台的PHP编辑器
Dec 25 PHP
Symfony2安装第三方Bundles实例详解
Feb 04 PHP
PHP读取mssql json数据中文乱码的解决办法
Apr 11 PHP
谈谈php对接芝麻信用踩的坑
Dec 01 PHP
Zend Framework入门应用实例详解
Dec 11 PHP
详解yii2使用多个数据库的案例
Jun 16 PHP
PHP用swoole+websocket和redis实现web一对一聊天
Nov 05 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安全防范技巧分享
2011/11/03 PHP
利用PHP获取网站访客的所在地位置
2017/01/18 PHP
PHP用PDO如何封装简单易用的DB类详解
2017/07/30 PHP
jQuery 入门级学习笔记及源码
2010/01/22 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
Jquery技巧(必须掌握)
2016/03/16 Javascript
AngularJs定制样式插入到ueditor中的问题小结
2016/08/01 Javascript
vue不通过路由直接获取url中参数的方法示例
2017/08/24 Javascript
浅谈vue引入css,less遇到的坑和解决方法
2018/01/20 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
微信小程序实现简单文字跑马灯
2020/05/26 Javascript
Vue的Options用法说明
2020/08/14 Javascript
对pandas处理json数据的方法详解
2019/02/08 Python
详解pandas数据合并与重塑(pd.concat篇)
2019/07/09 Python
40个你可能不知道的Python技巧附代码
2020/01/29 Python
Anaconda+Pycharm环境下的PyTorch配置方法
2020/03/13 Python
Python持续监听文件变化代码实例
2020/07/22 Python
python Selenium 库的使用技巧
2020/10/16 Python
python logging模块的使用详解
2020/10/23 Python
纯CSS3单页切换导航菜单界面设计的简单实现
2016/08/16 HTML / CSS
input元素的url类型和email类型简介
2012/07/11 HTML / CSS
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
2013/06/09 HTML / CSS
h5调用摄像头的实现方法
2016/06/01 HTML / CSS
英国家庭、花园、汽车和移动解决方案:Easylife Group
2018/05/23 全球购物
写自荐信的七个技巧
2013/10/15 职场文书
教师实习的自我鉴定
2013/10/26 职场文书
《唯一的听众》教学反思
2014/02/20 职场文书
葬礼司仪主持词
2014/03/31 职场文书
《冬阳童年骆驼队》教学反思
2014/04/15 职场文书
体育运动口号
2014/06/09 职场文书
办公室班子四风问题对照检查材料
2014/10/04 职场文书
法人代表资格证明书
2015/06/18 职场文书
Pytorch 如何加速Dataloader提升数据读取速度
2021/05/28 Python
一起来学习Python的元组和列表
2022/03/13 Python
mysql序号rownum行号实现方式
2022/12/24 MySQL