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 相关文章推荐
如何限制访问者的ip(PHPBB的代码)
Oct 09 PHP
多重?l件?合查?(二)
Oct 09 PHP
php 生成静态页面的办法与实现代码详细版
Feb 15 PHP
基于PHP生成静态页的实现方法
May 10 PHP
php不使用插件导出excel的简单方法
Mar 04 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
Apr 29 PHP
PHP防止表单重复提交的几种常用方法汇总
Aug 19 PHP
php使用$_POST或$_SESSION[]向js函数传参
Sep 16 PHP
php替换字符串中间字符为省略号的方法
May 04 PHP
PHP连接及操作PostgreSQL数据库的方法详解
Jan 30 PHP
通过PHP实现获取访问用户IP
May 09 PHP
PHP配置文件php.ini中打开错误报告的设置方法
Jan 09 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 cout&amp;lt;&amp;lt;的一点看法
2010/01/24 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
2013/06/29 PHP
ThinkPHP应用模式扩展详解
2014/07/16 PHP
PHP的pcntl多进程用法实例
2015/03/19 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
laravel-admin自动生成模块,及相关基础配置方法
2019/10/08 PHP
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
JavaScript 面向对象之命名空间
2010/05/04 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
2014/03/05 Javascript
JS中如何比较两个Json对象是否相等实例代码
2016/07/13 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
bootstrap制作jsp页面(根据值让table显示选中)
2017/01/05 Javascript
Node.js中的require.resolve方法使用简介
2017/04/23 Javascript
javascript 面向对象实战思想分享
2017/09/07 Javascript
JavaScript中发出HTTP请求最常用的方法
2018/07/12 Javascript
微信小程序提交form操作示例
2018/12/30 Javascript
vue路由传参页面刷新参数丢失问题解决方案
2019/10/08 Javascript
uni-app实现点赞评论功能
2019/11/25 Javascript
基于js实现判断浏览器类型代码实例
2020/07/17 Javascript
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
python的中异常处理机制
2018/08/30 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
2020/02/26 Python
使用Keras建立模型并训练等一系列操作方式
2020/07/02 Python
python实现图片素描效果
2020/09/26 Python
深入理解HTML5定时器requestAnimationFrame的使用
2018/12/12 HTML / CSS
美国知名的在线旅游服务网站:Priceline
2016/07/23 全球购物
韩国最大的购物网站:Gmarket
2019/06/20 全球购物
Mamaearth官方网站:印度母婴护理产品公司
2019/10/06 全球购物
初三化学教学反思
2014/01/23 职场文书
高三体育教学反思
2014/01/29 职场文书
天猫某品牌专卖店运营计划书
2014/03/21 职场文书
《春天来了》教学反思
2014/04/07 职场文书
pytorch 如何使用amp进行混合精度训练
2021/05/24 Python
用Python监控你的朋友都在浏览哪些网站?
2021/05/27 Python
MySQL 如何限制一张表的记录数
2021/09/14 MySQL
python基础之类属性和实例属性
2021/10/24 Python