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 相关文章推荐
一个程序下载的管理程序(四)
Oct 09 PHP
php中目录,文件操作详谈
Mar 19 PHP
使用PHP遍历文件夹与子目录的函数代码
Sep 26 PHP
php缓存技术详细总结
Aug 07 PHP
PHP清除数组中所有字符串两端空格的方法
Oct 20 PHP
php中fgetcsv()函数用法实例
Nov 28 PHP
使用phpstorm和xdebug实现远程调试的方法
Dec 29 PHP
php中的常用魔术方法汇总
Feb 14 PHP
php中二分法查找算法实例分析
Sep 22 PHP
利用php生成验证码
Feb 23 PHP
PHP使用Nginx实现反向代理
Sep 20 PHP
零基础php编程好学吗
Oct 11 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
解析posix与perl标准的正则表达式区别
2013/06/17 PHP
PHP $_FILES中error返回值详解
2014/01/30 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
学习js在线html(富文本,所见即所得)编辑器
2012/12/18 Javascript
关于session和cookie的简单理解
2016/06/08 Javascript
Vue+jquery实现表格指定列的文字收缩的示例代码
2018/01/09 jQuery
默认浏览器设置及vue自动打开页面的方法
2018/09/21 Javascript
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
如何解决webpack-dev-server代理常切换问题
2019/01/09 Javascript
解决微信小程序中转换时间格式IOS不兼容的问题
2019/02/15 Javascript
layui 对弹窗 form表单赋值的实现方法
2019/09/04 Javascript
layui 关闭open弹出框 刷新table表格页面的方法
2019/09/16 Javascript
Python入门篇之正则表达式
2014/10/20 Python
Python中自定义函数的教程
2015/04/27 Python
Python2.x利用commands模块执行Linux shell命令
2016/03/11 Python
Python+tkinter使用40行代码实现计算器功能
2018/01/30 Python
python实现事件驱动
2018/11/21 Python
解决安装pycharm后不能执行python脚本的问题
2019/01/19 Python
Python全面分析系统的时域特性和频率域特性
2020/02/26 Python
浅谈matplotlib 绘制梯度下降求解过程
2020/07/12 Python
无需压缩软件,用python帮你操作压缩包
2020/08/17 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
2021/02/22 Python
html5 input元素新特性_动力节点Java学院整理
2017/07/06 HTML / CSS
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
2017/07/11 HTML / CSS
SQL Server笔试题
2012/01/10 面试题
extern是什么意思
2016/03/10 面试题
预备党员思想汇报范文
2013/12/29 职场文书
偷看我的初中毕业鉴定
2014/01/29 职场文书
出纳员岗位职责风险
2014/03/06 职场文书
学习保证书怎么写
2015/02/26 职场文书
2015年秋季新学期寄语
2015/03/25 职场文书
家长对学校的意见和建议
2015/06/03 职场文书
百家讲坛观后感
2015/06/12 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
重温经典:乔布斯在斯坦福大学的毕业演讲(双语)
2019/08/26 职场文书
解决Jupyter-notebook不弹出默认浏览器的问题
2021/03/30 Python