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 相关文章推荐
六酷社区论坛HOME页清新格调免费版 下载
Mar 07 PHP
php动态生成函数示例
Mar 21 PHP
PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例
Aug 17 PHP
PHP 中提示undefined index如何解决(多种方法)
Mar 16 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
May 17 PHP
php实现等比例不失真缩放上传图片的方法
Nov 14 PHP
PHPCMS手机站伪静态设置详细教程
Feb 06 PHP
PHP基于SMTP协议实现邮件发送实例代码
Apr 27 PHP
详解php中serialize()和unserialize()函数
Jul 08 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
Oct 08 PHP
PHP 扩展Memcached命令用法实例总结
Jun 04 PHP
一次项目中Thinkphp绕过禁用函数的实战记录
Nov 17 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图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
laravel5.6中的外键约束示例
2019/10/23 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
使用javascript过滤html的字符串(注释标记法)
2013/07/08 Javascript
使用Node.js配合Nginx实现高负载网络
2015/06/28 Javascript
javascript性能优化之事件委托实例详解
2015/12/12 Javascript
Node.js程序中的本地文件操作用法小结
2016/03/06 Javascript
浅谈JavaScript 数据属性和访问器属性
2016/09/01 Javascript
vue.js中$watch的用法示例
2016/10/04 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
js+css3实现旋转效果
2017/01/20 Javascript
element-ui使用导航栏跳转路由的用法详解
2018/08/22 Javascript
Vue程序调试的方法
2019/06/17 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
2019/11/01 jQuery
jQuery与原生JavaScript选择HTML元素集合用法对比分析
2019/11/26 jQuery
JavaScript修改注册表实例代码
2020/01/05 Javascript
JS+css3实现幻灯片轮播图
2020/08/14 Javascript
如何利用nodejs实现命令行游戏
2020/11/24 NodeJs
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
Python的装饰器使用详解
2017/06/26 Python
使用Python刷淘宝喵币(低阶入门版)
2019/10/30 Python
HTML5 表单验证失败的提示语问题
2017/07/13 HTML / CSS
用canvas画心电图的示例代码
2018/09/10 HTML / CSS
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
生态学毕业生自荐信
2013/10/27 职场文书
中药专业自荐信范文
2014/03/18 职场文书
太太口服液广告词
2014/03/20 职场文书
投资建议书模板
2014/05/12 职场文书
四风自我剖析材料
2014/09/30 职场文书
校运动会广播稿300字
2014/10/07 职场文书
惹女朋友生气检讨书
2015/05/06 职场文书
工程项目合作意向书
2015/05/08 职场文书
机关工会工作总结2015
2015/05/26 职场文书
Django Paginator分页器的使用示例
2021/06/23 Python
mysql 联合索引生效的条件及索引失效的条件
2021/11/20 MySQL