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 相关文章推荐
PHP5/ZendEngine2的改进
Oct 09 PHP
PHP中for循环语句的几种变型
Nov 26 PHP
PHP学习资料汇总与网址
Mar 16 PHP
php 删除cookie方法详解
Dec 01 PHP
php实现用于删除整个目录的递归函数
Mar 16 PHP
PHP获取数组最大值下标的方法
May 12 PHP
thinkPHP使用post方式查询时分页失效的解决方法
Dec 09 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
Dec 21 PHP
Laravel用户授权系统的使用方法示例
Sep 16 PHP
PHP配置ZendOpcache插件加速
Feb 14 PHP
PHP判断函数是否被定义的方法
Jun 21 PHP
PHP多进程简单实例小结
Nov 09 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中websocket的使用方法
2016/09/15 PHP
PHP不使用递归的无限级分类简单实例
2016/11/05 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
2018/06/06 PHP
JavaScript CSS修改学习第三章 修改样式表
2010/02/19 Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
2014/04/03 Javascript
JavaScript利用正则表达式去除日期中的-
2014/06/09 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
JS动态修改iframe内嵌网页地址的方法
2015/04/01 Javascript
JavaScript实现横向滑出的多级菜单效果
2015/10/09 Javascript
JavaScript实现窗口抖动效果
2016/10/19 Javascript
详解Angularjs 如何自定义Img的ng-load 事件
2017/02/15 Javascript
详解使用Node.js 将txt文件转为Excel文件
2017/07/05 Javascript
JavaScript对象拷贝与赋值操作实例分析
2018/12/10 Javascript
vue+elementUi图片上传组件使用详解
2019/08/20 Javascript
小程序和web画三角形实现解析
2019/09/02 Javascript
小程序的上传文件接口的注意要点解析
2019/09/17 Javascript
H5 js点击按钮复制文本到粘贴板
2020/11/19 Javascript
[56:46]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VP vs Effect
2018/04/01 DOTA
win7 下搭建sublime的python开发环境的配置方法
2014/06/18 Python
Python的SQLAlchemy框架使用入门
2015/04/29 Python
python入门基础之用户输入与模块初认识
2016/11/14 Python
selenium+python实现自动化登录的方法
2018/09/04 Python
Python多线程获取返回值代码实例
2020/02/17 Python
Python获取浏览器窗口句柄过程解析
2020/07/25 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
2020/09/26 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
iRobot官网:改变生活的家用机器人品牌
2016/09/20 全球购物
澳大利亚拥有最佳跳伞降落点和最好服务的跳伞项目运营商:Skydive Australia
2018/03/05 全球购物
英国123鲜花网站:123 Flowers
2019/07/07 全球购物
关于爱情的广播稿
2014/01/16 职场文书
领导干部廉政承诺书
2014/03/27 职场文书
法制宣传标语
2014/06/23 职场文书
逃课检讨书范文
2015/05/06 职场文书
Golang表示枚举类型的详细讲解
2021/09/04 Golang
【海涛解说】史上最给力比赛,挑战DOTA极限
2022/04/01 DOTA
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript