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制作中间带自己定义图片二维码的方法
Jan 27 PHP
CI(CodeIgniter)框架中的增删改查操作
Jun 10 PHP
ThinkPHP 3.2 版本升级了哪些内容
Mar 05 PHP
PHP中使用array函数新建一个数组
Nov 19 PHP
PHP XML和数组互相转换详解
Oct 26 PHP
PHP 获取指定地区的天气实例代码
Feb 08 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
详细解读php的命名空间(二)
Feb 21 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
Jan 15 PHP
PHP Primary script unknown 解决方法总结
Aug 22 PHP
解决php写入数据库乱码的问题
Sep 17 PHP
laravel实现上传图片并在页面显示的例子
Oct 14 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生成随机密码类分享
2014/06/25 PHP
php生成shtml类用法实例
2014/12/09 PHP
PHP单例模式详细介绍
2015/07/01 PHP
php实现文章置顶功能的方法
2016/10/20 PHP
php双层循环(九九乘法表)
2017/10/23 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
对textarea框的代码调试,而且功能上使用非常方便,酷
2006/06/30 Javascript
js chrome浏览器判断代码
2010/03/28 Javascript
Js 冒泡事件阻止实现代码
2013/01/27 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
2013/12/09 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
Jquery使用val方法读写value值
2015/05/18 Javascript
浅谈javascript基础之客户端事件驱动
2016/06/10 Javascript
js实现加载更多功能实例
2016/10/27 Javascript
js倒计时小实例(多次定时)
2016/12/08 Javascript
滚动条的监听与内容随着滚动条动态加载的实现
2017/02/08 Javascript
javaScript嗅探执行神器-sniffer.js
2017/02/14 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
2017/08/07 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
vue 不使用select实现下拉框功能(推荐)
2018/05/17 Javascript
vue中v-for通过动态绑定class实现触发效果
2018/12/06 Javascript
Layui数据表格 前后端json数据接收的方法
2019/09/19 Javascript
JS插入排序简单理解与实现方法分析
2019/11/25 Javascript
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
使用Python实现简单的服务器功能
2017/08/25 Python
Python函数中不定长参数的写法
2019/02/13 Python
全网首秀之Pycharm十大实用技巧(推荐)
2020/04/27 Python
python中pow函数用法及功能说明
2020/12/04 Python
html+js 实现markdown编辑器效果
2019/10/23 HTML / CSS
好矿嫂事迹材料
2014/01/21 职场文书
机关干部四风问题自查报告及整改措施
2014/10/26 职场文书
2015年推普周活动总结
2015/03/27 职场文书
远程教育集中轮训基层干部培训班学习心得体会
2016/01/09 职场文书
导游词之黄果树瀑布
2019/09/20 职场文书
Mysql 设置boolean类型的操作
2021/06/04 MySQL
pt-archiver 主键自增
2022/04/26 MySQL