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经典的给图片加水印程序
Dec 06 PHP
phpMyAdmin2.11.6安装配置方法
Aug 24 PHP
PHP目录函数实现创建、读取目录教程实例
Jan 13 PHP
PHP+Mysql+jQuery实现动态展示信息
Oct 08 PHP
xml在joomla表单中的应用详解分享
Jul 19 PHP
php切割页面div内容的实现代码分享
Jul 31 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
Jan 04 PHP
php限制文件下载速度的代码
Oct 20 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 PHP
PHP实现的AES双向加密解密功能示例【128位】
Sep 03 PHP
laravel框架实现后台登录、退出功能示例
Oct 31 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 miniBB中文乱码问题解决方法
2008/11/25 PHP
php cache类代码(php数据缓存类)
2010/04/15 PHP
php var_export与var_dump 输出的不同
2013/08/09 PHP
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
2013/11/26 PHP
php+highchats生成动态统计图
2014/05/21 PHP
php进行支付宝开发中return_url和notify_url的区别分析
2014/12/22 PHP
PHP cURL初始化和执行方法入门级代码
2015/05/28 PHP
Codeigniter的dom类用法实例
2015/06/26 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
2015/10/08 PHP
Zend Studio使用技巧两则
2016/04/01 PHP
jquery ajax 同步异步的执行 return值不能取得的解决方案
2012/01/08 Javascript
jquery $.ajax相关用法分享
2012/03/16 Javascript
多个jquery.datatable共存,checkbox全选异常的快速解决方法
2013/12/10 Javascript
jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
2017/08/23 jQuery
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
2017/11/09 Javascript
JS闭包原理与应用经典示例
2018/12/20 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
JS addEventListener()和attachEvent()方法实现注册事件
2021/01/11 Javascript
在Python中使用正则表达式的方法
2015/08/13 Python
Python面向对象思想与应用入门教程【类与对象】
2019/04/12 Python
Python中函数的返回值示例浅析
2019/08/28 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
TensorFlow低版本代码自动升级为1.0版本
2021/02/20 Python
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
html5响应式开发自动计算fontSize的方法
2020/01/13 HTML / CSS
英国购买威士忌网站:Master of Malt
2019/09/26 全球购物
通信工程专业女生个人求职信
2013/09/21 职场文书
销售主管的自我评价分享
2014/01/03 职场文书
入党转预备思想汇报
2014/01/07 职场文书
加强作风建设工作总结
2014/10/23 职场文书
2015廉洁自律个人总结
2015/02/14 职场文书
银行求职信范文怎么写
2015/03/20 职场文书
2015年勤工助学工作总结
2015/04/29 职场文书
贫困证明怎么写
2015/06/16 职场文书
2016年父亲节寄语
2015/12/04 职场文书
《地震中的父与子》教学反思
2016/02/16 职场文书