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 相关文章推荐
BBS(php &amp; mysql)完整版(三)
Oct 09 PHP
MySQL相关说明
Jan 15 PHP
PHPEXCEL 使用小记
Jan 06 PHP
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
Jun 03 PHP
php使用ICQ网关发送手机短信
Oct 30 PHP
php Calender(日历)代码分享
Jan 03 PHP
mac环境中使用brew安装php5.5.15
Aug 18 PHP
PHP连接MySQL进行增、删、改、查操作
Feb 19 PHP
php 使用curl模拟ip和来源进行访问的实现方法
May 02 PHP
laravel 5.3中自定义加密服务的方案详解
May 09 PHP
PHP迭代与递归实现无限级分类
Aug 28 PHP
PHP判断是否是微信打开还是浏览器打开的方法
Feb 27 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 冒泡排序算法的实现代码
2010/08/08 PHP
php中用foreach来操作数组的代码
2011/07/17 PHP
PHP基础学习之流程控制的实现分析
2013/04/28 PHP
YII框架http缓存操作示例
2019/04/29 PHP
一些常用的JS功能函数(2009-06-04更新)
2009/06/04 Javascript
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
提升PHP安全:8个必须修改的PHP默认配置
2014/11/17 Javascript
jQuery异步获取json数据方法汇总
2014/12/22 Javascript
jquery中EasyUI实现同步树
2015/03/01 Javascript
JavaScript代码性能优化总结(推荐)
2016/05/16 Javascript
js实现的页面加载完毕之前loading提示效果完整示例【附demo源码下载】
2016/08/02 Javascript
JS中的作用域链
2017/03/01 Javascript
Node.js dgram模块实现UDP通信示例代码
2017/09/26 Javascript
基于vue、react实现倒计时效果
2019/08/26 Javascript
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
2020/02/01 jQuery
纯js实现无缝滚动功能代码实例
2020/02/21 Javascript
Python读写文件方法总结
2015/06/09 Python
scrapy爬虫完整实例
2018/01/25 Python
Django项目中包含多个应用时对url的配置方法
2018/05/30 Python
python3+requests接口自动化session操作方法
2018/10/13 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
对python实现合并两个排序链表的方法详解
2019/01/23 Python
对python numpy.array插入一行或一列的方法详解
2019/01/29 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
2019/06/19 Python
Python PIL库图片灰化处理
2020/04/07 Python
Python基于time模块表示时间常用方法
2020/06/18 Python
python 最简单的实现适配器设计模式的示例
2020/06/30 Python
关于css兼容性问题及一些常见问题汇总
2016/05/03 HTML / CSS
HTML5 Canvas锯齿图代码实例
2014/04/10 HTML / CSS
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
房地产工程部经理岗位职责
2015/04/09 职场文书
恋恋笔记本观后感
2015/06/16 职场文书
2016年“节能宣传周”活动总结
2016/04/05 职场文书
Redis字典实现、Hash键冲突及渐进式rehash详解
2021/09/04 Redis
pycharm无法安装cv2模块问题
2022/05/20 Python