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 相关文章推荐
用在PHP里的JS打印函数
Oct 09 PHP
php switch语句多个值匹配同一代码块的实现
Mar 03 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
Apr 18 PHP
php smarty模板引擎的6个小技巧
Apr 24 PHP
Windows7下的php环境配置教程
Feb 28 PHP
php检索或者复制远程文件的方法
Mar 13 PHP
php实现可逆加密的方法
Aug 11 PHP
基于php实现七牛抓取远程图片
Dec 01 PHP
关于php中的json_encode()和json_decode()函数的一些说明
Nov 20 PHP
PHP实现打包zip并下载功能
Jun 12 PHP
在laravel5.2中实现点击用户头像更改头像的方法
Oct 14 PHP
PHP实现爬虫爬取图片代码实例
Mar 03 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
10个php函数实用却不常见
2015/10/13 PHP
详谈php中 strtr 和 str_replace 的效率问题
2017/05/14 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
用js脚本控制asp.net下treeview的NodeCheck的实现代码
2010/03/02 Javascript
JavaScript简单实现网页回到顶部功能
2013/11/12 Javascript
asp.net中oracle 存储过程(图文)
2015/08/12 Javascript
BootStrap的alert提示框的关闭后再显示怎么解决
2016/05/17 Javascript
jQuery插件简单学习实例教程
2016/07/01 Javascript
使用Angular.js实现简单的购物车功能
2016/11/21 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
通过js修改input、select默认字体颜色
2017/04/19 Javascript
echart简介_动力节点Java学院整理
2017/08/11 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
浅谈React前后端同构防止重复渲染
2018/01/05 Javascript
JS实现的全选、全不选及反选功能【案例】
2019/02/19 Javascript
vue-video-player视频播放器使用配置详解
2020/10/23 Javascript
[02:38]DOTA2亚洲邀请赛小组赛精彩集锦:Wings完美团击溃对手
2017/03/29 DOTA
[02:09]2018DOTA2亚洲邀请赛TNC赛前采访
2018/04/04 DOTA
Python开发的单词频率统计工具wordsworth使用方法
2014/06/25 Python
Python的垃圾回收机制深入分析
2014/07/16 Python
Python的Bottle框架的一些使用技巧介绍
2015/04/08 Python
python OpenCV学习笔记直方图反向投影的实现
2018/02/07 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
2019/01/17 Python
通过shell+python实现企业微信预警
2019/03/07 Python
Python替换月份为英文缩写的实现方法
2019/07/15 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
python多线程同步之文件读写控制
2021/02/25 Python
4行Python代码生成图像验证码(2种)
2020/04/07 Python
python中的django是做什么的
2020/07/31 Python
中东地区最大的奢侈品市场:The Luxury Closet
2019/04/09 全球购物
药学专业个人的自我评价
2013/12/31 职场文书
写给妈妈的道歉信
2014/01/11 职场文书
群众路线个人整改方案
2014/10/25 职场文书
民事撤诉申请书范本
2015/05/18 职场文书
舞出我人生观后感
2015/06/16 职场文书
Python通过loop.run_in_executor执行同步代码 同步变为异步
2022/04/11 Python