ThinkPHP3.2框架自定义配置和加载用法示例


Posted in PHP onJune 14, 2018

本文实例讲述了ThinkPHP3.2框架自定义配置和加载用法。分享给大家供大家参考,具体如下:

有时候我们会有一些规则定义每个数字对应的实际内容,比如说在下拉菜单的时候:

<select name="reasonAndType" id="">
  <option value="1">查询物流</option>
  <option value="2">办理退货</option>
  <option value="3">咨询退货</option>
  <option value="4">咨询佣金</option>
  <option value="5">咨询规则</option>
  <option value="0">其他</option>
</select>

ThinkPHP3.2框架自定义配置和加载用法示例←实际效果

ThinkPHP3.2框架自定义配置和加载用法示例←数据库存的效果

ThinkPHP3.2框架自定义配置和加载用法示例←显示的时候。

这个例子里,实际显示的是汉字,实际的value值是数字,等我们向数据库存的时候也是存数字,等我们从数据库获取的时候也是取数字,显示的时候也是显示汉字;

所以我们需要一个类似字典的东西,它定义了那个数字对应的汉字是什么,定义的实际意义是什么;

用数据库能够实现这个效果,但我们不用,因为对数据库的操作开销太大;

如果是普通的PHP环境,我们可以把规则单独存到一个文件里,内容是一个数组:

type.PHP

$type = array(
'1' => '查询物流',
'2' => '办理退货',
'3' => '咨询退货',
'4' => '咨询佣金',
'5' => '咨询规则',
'0' => '其他'
);

就像上面代码那样,定义好之后,存成一个文件,当我们需要调用这个这个规则的时候,就include或者require,然后直接用$type这个变量去找就行了,比如:

require_once('type.php');
echo $type[1]; //输出'查询物流'
foreach($type as $k => $v){ //直接打印出最上面的下拉菜单代码,
echo "<option value = '{$k}' >{$v}</option>";
}

如果在ThinkPHP,要是想引入文件,只能用绝对路径,在include和require用__APP__或者__ROOT__快捷入口是不行的,U()造链函数我没试,应该是可以实现的。

还有一种实现方式,也是我在这里推荐的,就是直接把这套规则定义为这个网站的配置文件,当我们用的时候,用C()加载配置函数把这个数组加载出来赋给一个变量就好了。

上代码了:

把你定义的规则放到conf下,这是私有配置文件,只有Home这个入口的才生效,也可以放到公共配置文件下,细节可以去查手册。

return array(
'REASON_AND_TYPE' => array(
'1' => '查询物流',
'2' => '办理退货',
'3' => '咨询退货',
'4' => '咨询佣金',
'5' => '咨询规则',
'0' => '其他'
)
);

注意加上return;

注意,格式,return一个数组,键名是大写的(为了好看),键值是你要定义的东西,在这里我们定义的是一个数组。

修改config.php文件

<?php
return array(
//'配置项'=>'配置值'
'DB_TYPE' => 'mysqli', // 数据库类型
'DB_HOST' => 'localhost', // 服务器地址
'DB_NAME' => 'kefu', // 数据库名
'DB_USER' => 'root', // 用户名
'DB_PWD' => 'root', // 密码
'DB_PORT' => '', // 端口
'DB_PREFIX' => '', // 数据库表前缀
'LOAD_EXT_CONFIG' => 'reasonAndType', //这是我们自己添加的,LOAD_EXT_CONFIG键名固定,键值是你的php文件的文件名,那个数组名字在这里就不用管了
);

这就算配置好了。

下面讲调用这套规则:

$reasonAndTypeX = C('REASON_AND_TYPE');
//直接用数组名字就可以了,C()函数能加载配置里的键名所代表的值,赋给变量

注意,C()函数的里面的值,是reasonAndType这个文件的值。

var_dump($reasonAndTypeX);

就会输入这个数组的内容

array(
'1' => '查询物流',
'2' => '办理退货',
'3' => '咨询退货',
'4' => '咨询佣金',
'5' => '咨询规则',
'0' => '其他'
);

这样就完成了自定义配置文件的设置和加载。

如果‘REASON_AND_TYPE'没有配置,则会返回一个null值;

当然,你也可以设置默认值,代码如下:

// 如果REASON_AND_TYPE尚未设置的话,则返回default_config字符串
C('my_config',null,'default_config');

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

PHP 相关文章推荐
自己动手做一个SQL解释器
Oct 09 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
Nov 02 PHP
基于curl数据采集之正则处理函数get_matches的使用
Apr 28 PHP
linux环境apache多端口配置虚拟主机的方法深入介绍
Jun 09 PHP
使用HMAC-SHA1签名方法详解
Jun 26 PHP
PHP URL参数获取方式的四种例子
Feb 28 PHP
Thinkphp调用Image类生成缩略图的方法
Mar 07 PHP
PHP的全局错误处理详解
Apr 25 PHP
Yii中的relations数据关联查询及统计功能用法详解
Jul 14 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
Mar 02 PHP
php多进程并发编程防止出现僵尸进程的方法分析
Feb 28 PHP
详解thinkphp的Auth类认证
May 28 PHP
thinkPHP框架实现多表查询的方法
Jun 14 #PHP
php微信开发之关注事件
Jun 14 #PHP
thinkPHP框架动态配置用法实例分析
Jun 14 #PHP
php微信开发之谷歌测距
Jun 14 #PHP
php微信开发之图片回复功能
Jun 14 #PHP
php微信开发之音乐回复功能
Jun 14 #PHP
php微信开发之关键词回复功能
Jun 13 #PHP
You might like
php简单开启gzip压缩方法(zlib.output_compression)
2013/04/13 PHP
PHP处理excel cvs表格的方法实例介绍
2013/05/13 PHP
PHP利用header跳转失效的解决方法
2014/10/24 PHP
jQuery在html有效在jsp无效的原因及解决方法
2013/08/02 Javascript
Javascript浅谈之this
2013/12/17 Javascript
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
2014/01/02 Javascript
javascript实现浏览器窗口传递参数的方法
2014/09/03 Javascript
javascript记住用户名和登录密码(两种方式)
2015/08/04 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
2015/11/17 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
Javascript实现跨域后台设置拦截的方法详解
2017/08/04 Javascript
js实现单张图片平移切换效果
2017/10/11 Javascript
Angular4的输入属性与输出属性实例详解
2017/11/29 Javascript
Node.js中你不可不精的Stream(流)
2018/06/08 Javascript
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
基于Layui自定义模块的使用方法详解
2019/09/14 Javascript
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
[06:53]2018DOTA2国际邀请赛寻真——为复仇而来的Newbee
2018/08/15 DOTA
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
Python json模块使用实例
2015/04/11 Python
Python爬虫利用cookie实现模拟登陆实例详解
2017/01/12 Python
Python 关于反射和类的特殊成员方法
2017/09/14 Python
python实现彩色图转换成灰度图
2019/01/15 Python
python3使用matplotlib绘制散点图
2019/03/19 Python
Python学习笔记之自定义函数用法详解
2019/06/08 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
2019/11/07 Python
用python3读取python2的pickle数据方式
2019/12/25 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
Python 将 QQ 好友头像生成祝福语的实现代码
2020/05/03 Python
高校毕业生自我鉴定
2013/10/27 职场文书
出纳岗位职责模板
2013/11/27 职场文书
大学生村官任职感言
2014/01/09 职场文书
创业资金计划书
2014/02/06 职场文书
创业计划书之DIY自助厨房
2019/09/06 职场文书
Python 可迭代对象 iterable的具体使用
2021/08/07 Python
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
2022/04/06 Vue.js