Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析


Posted in PHP onMay 15, 2020

本文实例讲述了Thinkphp 框架配置操作之动态配置、扩展配置及批量配置。分享给大家供大家参考,具体如下:

动态配置

设置格式:

C('参数名称','新的参数值')

例如,我们需要动态改变数据缓存的有效期的话,可以使用

// 动态改变缓存有效期
C('DATA_CACHE_TIME',60);

动态配置赋值仅对当前请求有效,不会对以后的请求造成影响。

动态改变配置参数的方法和读取配置的方法在使用上面非常接近,都是使用C方法,只是参数的不同。

也可以支持二维数组的读取和设置,使用点语法进行操作,如下:

// 获取已经设置的参数值
C('USER_CONFIG.USER_TYPE');
// 设置新的值
C('USER_CONFIG.USER_TYPE',1);

扩展配置

扩展配置可以支持自动加载额外的自定义配置文件,并且配置格式和项目配置一样。

设置扩展配置的方式如下(多个文件用逗号分隔):

// 加载扩展配置文件
'LOAD_EXT_CONFIG' => 'user,db',

假设扩展配置文件user.php db.php分别用于用户配置和数据库配置,这样做的好处是哪怕以后关闭调试模式,你修改db配置文件后依然会自动生效。

如果在应用公共设置文件中配置的话,那么会自动加载应用公共配置目录下面的配置文件Application/Common/Conf/user.phpApplication/Common/Conf/db.php

如果在模块(假设是Home模块)的配置文件中配置的话,则会自动加载模块目录下面的配置文件 Application/Home/Conf/user.php Application/Home/Conf/db.php

默认情况下,扩展配置文件中的设置参数会并入项目配置文件中。也就是默认都是一级配置参数,例如user.php中的配置参数如下:

<?php
//用户配置文件
return array(
  'USER_TYPE'   => 2, //用户类型
  'USER_AUTH_ID'  => 10, //用户认证ID
  'USER_AUTH_TYPE' => 2, //用户认证模式
);

那么,最终获取用户参数的方式是:

C('USER_AUTH_ID');

如果配置文件改成:

// 加载扩展配置文件
'LOAD_EXT_CONFIG' => array('USER'=>'user','DB'=>'db'),

则最终获取用户参数的方式改成:

C('USER.USER_AUTH_ID');

批量配置

C配置方法支持批量配置,例如:

$config = array('WEB_SITE_TITLE'=>'ThinkPHP','WEB_SITE_DESCRIPTION'=>'开源PHP框架');
C($config);

$config数组中的配置参数会合并到现有的全局配置中。

可以通过这种方式读取数据库中的配置参数,例如:

// 读取数据库中的配置(假设有一个config表用于保存配置参数)
$config =  M('Config')->getField('name,value');
// config是一个关联数组 键值就是配置参数 值就是配置值
// 例如: array('config1'=>'val1','config2'=>'val2',...)
C($config); // 合并配置参数到全局配置

合并之后,我们就可以和前面读取普通配置参数一样,读取数据库中的配置参数了,当然也可以动态改变。

// 读取合并到全局配置中的数据库中的配置参数
C('CONFIG1');
// 动态改变配置参数(当前请求有效,不会自动保存到数据库)
C('CONFIG2','VALUE_NEW');

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP伪静态写法附代码
Jun 20 PHP
php file_get_contents函数轻松采集html数据
Apr 22 PHP
适用于php-5.2 的 php.ini 中文版[金步国翻译]
Apr 17 PHP
zend Framework中的Layout(模块化得布局)详解
Jun 28 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
Apr 21 PHP
PHP+Ajax 检测网络是否正常实例详解
Dec 16 PHP
PHP在linux上执行外部命令的方法
Feb 06 PHP
PHP基于DOMDocument解析和生成xml的方法分析
Jul 17 PHP
php 处理png图片白色背景色改为透明色的实例代码
Dec 10 PHP
php常用的工具开发整理
Sep 26 PHP
使用PHP开发留言板功能
Nov 19 PHP
php使用redis的几种常见操作方式和用法示例
Feb 20 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
May 15 #PHP
PHP程序员简单的开展服务治理架构操作详解(三)
May 14 #PHP
PHP程序员简单的开展服务治理架构操作详解(二)
May 14 #PHP
PHP程序员简单的开展服务治理架构操作详解(一)
May 14 #PHP
PHP程序员必须知道的两种日志实例分析
May 14 #PHP
Laravel框架集合用法实例浅析
May 14 #PHP
Laravel框架源码解析之模型Model原理与用法解析
May 14 #PHP
You might like
PHP中对数据库操作的封装
2006/10/09 PHP
PHP页面实现定时跳转的方法
2014/10/31 PHP
thinkPHP5.0框架环境变量配置方法
2017/03/17 PHP
php fread函数使用方法总结
2019/05/28 PHP
javascript实现阻止iOS APP中的链接打开Safari浏览器
2014/06/12 Javascript
实例详解jQuery结合GridView控件的使用方法
2016/01/04 Javascript
JavaScript对象数组排序实例方法浅析
2016/06/15 Javascript
Bootstrap 3.x打印预览背景色与文字显示异常的解决
2016/11/06 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
2017/02/20 Javascript
Angularjs cookie 操作实例详解
2017/09/27 Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
2017/12/16 jQuery
Vue插件打包与发布的方法示例
2018/08/20 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
JS Math对象与Math方法实例小结
2019/07/05 Javascript
浅入深出Vue之自动化路由
2019/08/06 Javascript
微信小程序实现左侧滑栏过程解析
2019/08/26 Javascript
vue路由结构可设一层方便动态添加路由操作
2020/08/31 Javascript
[04:11]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/01/30 DOTA
利用Python画ROC曲线和AUC值计算
2016/09/19 Python
python中实现精确的浮点数运算详解
2017/11/02 Python
python Flask 装饰器顺序问题解决
2018/08/08 Python
python地震数据可视化详解
2019/06/18 Python
Python数据分析pandas模块用法实例详解
2019/11/20 Python
Python描述符descriptor使用原理解析
2020/03/21 Python
Pycharm中使用git进行合作开发的教程详解
2020/11/17 Python
python如何用matplotlib创建三维图表
2021/01/26 Python
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
旅游管理专业学生求职信
2013/09/28 职场文书
食品营养与检测应届生求职信
2013/11/08 职场文书
厨师岗位职责
2013/11/12 职场文书
幼儿园安全责任书
2014/04/14 职场文书
乔布斯辞职信(中英文对照)
2015/05/12 职场文书
南京大屠杀观后感
2015/06/02 职场文书
2015年街道办事处团委工作总结
2015/10/14 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书
爱岗敬业先进典型事迹材料(2016推荐版)
2016/02/26 职场文书