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 imagecreatetruecolor 创建高清和透明图片代码小结
May 15 PHP
php 大数据量及海量数据处理算法总结
May 07 PHP
PHP 过滤页面中的BOM(实现代码)
Jun 29 PHP
浅析PHP绘图技术
Jul 03 PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
Jun 12 PHP
destoon实现调用热门关键字的方法
Jul 15 PHP
destoon实现调用图文新闻的方法
Aug 21 PHP
PHP中Memcache操作类及用法实例
Dec 12 PHP
PHP类的封装与继承详解
Sep 29 PHP
thinkphp框架实现数据添加和显示功能
Jun 29 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
Apr 18 PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 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
中英文字符串翻转函数
2008/12/09 PHP
PHP 内存缓存加速功能memcached安装与用法
2009/09/03 PHP
php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
2010/12/19 PHP
PHP采集类Snoopy抓取图片实例
2014/06/19 PHP
php检测url是否存在的方法
2015/04/14 PHP
laravel model模型处理之修改查询或修改字段时的类型格式案例
2019/10/17 PHP
vs2003 js文件编码问题的解决方法
2010/03/20 Javascript
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
js匿名函数的调用示例(形式多种多样)
2014/08/20 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
基于javascript实现图片切换效果
2016/04/17 Javascript
jquery siblings获取同辈元素用法实例分析
2016/07/25 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
jQuery实现动态添加tr到table的方法
2016/12/26 Javascript
JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)
2017/03/30 Javascript
javascript兼容性(实例讲解)
2017/08/15 Javascript
深入浅析Vue中的slots/scoped slots
2018/04/03 Javascript
关于微信小程序bug记录与解决方法
2018/08/15 Javascript
JavaScript交换两个变量方法实例
2019/11/25 Javascript
js实现九宫格抽奖
2020/03/19 Javascript
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
Python用5行代码写一个自定义简单二维码
2018/10/21 Python
对python读写文件去重、RE、set的使用详解
2018/12/11 Python
Python Cookie 读取和保存方法
2018/12/28 Python
Python常用的json标准库
2019/02/19 Python
简述 Python 的类和对象
2020/08/21 Python
HTML5+css3:3D旋转木马效果相册
2017/01/03 HTML / CSS
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
如何撰写岗位职责
2014/02/01 职场文书
元旦趣味活动方案
2014/08/22 职场文书
小学生运动会通讯稿
2014/09/23 职场文书
现货白银电话营销话术
2015/05/29 职场文书
mysql 获取时间方式
2022/03/20 MySQL
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android