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 相关文章推荐
phpMyAdmin 安装教程全攻略
Mar 19 PHP
PHP生成带有雪花背景的验证码
Sep 28 PHP
php jquery 实现新闻标签分类与无刷新分页
Dec 18 PHP
保存到桌面、设为桌面且带图标的PHP代码
Nov 19 PHP
php的闭包(Closure)匿名函数初探
Feb 14 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
Jun 17 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 PHP
php实现微信发红包功能
Jul 13 PHP
php生成二维码不保存服务器还有下载功能的实现代码
Aug 09 PHP
PHP7 echo和print语句实例用法
Feb 15 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
Feb 16 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
Dec 20 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
Codeigniter生成Excel文档的简单方法
2014/06/12 PHP
ThinkPHP CURD方法之order方法详解
2014/06/18 PHP
php获取CSS文件中图片地址并下载到本地的方法
2014/12/02 PHP
php实现用手机关闭计算机(电脑)的方法
2015/04/22 PHP
php析构函数的简单使用说明
2015/08/24 PHP
javascript 窗口加载蒙板 内嵌网页内容
2010/11/19 Javascript
JQuery获取各种宽度、高度(format函数)实例
2013/03/04 Javascript
JavaScript实现存储HTML字符串示例
2014/04/21 Javascript
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
Javascript基础教程之关键字和保留字汇总
2015/01/18 Javascript
jQuery实现平滑滚动的标签分栏切换效果
2015/08/28 Javascript
javaScript实现可缩放的显示区效果代码
2015/10/26 Javascript
干货分享:让你分分钟学会javascript闭包
2015/12/25 Javascript
JS解决iframe之间通信和自适应高度的问题
2016/08/24 Javascript
javascript 中null和undefined区分和比较
2017/04/19 Javascript
Javascript调试之console对象——你不知道的一些小技巧
2017/07/10 Javascript
vue使用axios时关于this的指向问题详解
2017/12/22 Javascript
vue.js分页中单击页码更换页面内容的方法(配合spring springmvc)
2018/02/10 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
详解js根据百度地图提供经纬度计算两点距离
2019/05/13 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
vue 弹出遮罩层样式实例
2020/07/22 Javascript
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
python实现m3u8格式转换为mp4视频格式
2018/02/28 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
2018/05/08 Python
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
Python实例方法、类方法、静态方法的区别与作用详解
2019/03/25 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
2020/09/09 Python
澳大利亚手表品牌:Time IV Change
2018/10/06 全球购物
开会迟到检讨书
2014/01/08 职场文书
西湖英语导游词
2015/02/06 职场文书
小学生学习保证书
2015/02/26 职场文书
大学生求职自荐信
2015/03/24 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
基于PyQt5制作一个群发邮件工具
2022/04/08 Python
js前端设计模式优化50%表单校验代码示例
2022/06/21 Javascript