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 相关文章推荐
第八节--访问方式
Nov 16 PHP
Windows IIS PHP 5.2 安装与配置方法
Jun 08 PHP
php连接mssql数据库的几种方法
Feb 21 PHP
php+ajax实现文章自动保存的方法
Dec 30 PHP
PHP扩展开发入门教程
Feb 26 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
Mar 13 PHP
PHP与Ajax相结合实现登录验证小Demo
Mar 16 PHP
php求数组全排列,元素所有组合的方法
May 05 PHP
Laravel5中防止XSS跨站攻击的方法
Oct 10 PHP
php基于单例模式封装mysql类完整实例
Oct 18 PHP
Linux下 php7安装redis的方法
Nov 01 PHP
PHP删除字符串中非字母数字字符方法总结
Jan 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
PHP.MVC的模板标签系统(三)
2006/09/05 PHP
PHP基础学习小结
2011/04/17 PHP
PHP数据库连接mysql与mysqli对比分析
2016/01/04 PHP
网页里控制图片大小的相关代码
2006/06/13 Javascript
jQuery JSON的解析方式分享
2011/04/05 Javascript
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
easyui validatebox验证
2016/04/29 Javascript
javascript封装addLoadEvent实现页面同时加载执行多个函数的方法
2016/07/25 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
Javascript仿京东放大镜的效果
2017/03/01 Javascript
Vue.js在使用中的一些注意知识点
2017/04/29 Javascript
JS匹配日期和时间的正则表达式示例
2017/05/12 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
JavaScript执行环境及作用域链实例分析
2018/08/01 Javascript
微信小程序搭建(mpvue+mpvue-weui+fly.js)的详细步骤
2018/09/18 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
基于vue+axios+lrz.js微信端图片压缩上传方法
2019/06/25 Javascript
详解vue-video-player使用心得(兼容m3u8)
2019/08/23 Javascript
Python中使用OpenCV库来进行简单的气象学遥感影像计算
2016/02/19 Python
尝试用最短的Python代码来实现服务器和代理服务器
2016/06/23 Python
Python判断telnet通不通的实例
2019/01/26 Python
python解析xml简单示例
2019/06/21 Python
python模块导入的方法
2019/10/24 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
python中列表的含义及用法
2020/05/26 Python
Python使用pyenv实现多环境管理
2021/02/05 Python
基于canvas使用贝塞尔曲线平滑拟合折线段的方法
2018/01/10 HTML / CSS
德国狗狗用品在线商店:Schecker
2017/03/17 全球购物
电大毕业生自我鉴定
2014/04/10 职场文书
学校党的群众路线教育实践活动总结报告
2014/07/03 职场文书
学校捐款活动总结
2015/05/09 职场文书
Python 流媒体播放器的实现(基于VLC)
2021/04/28 Python
如何用threejs实现实时多边形折射
2021/05/07 Javascript
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL
Python实现科学占卜 让视频自动打码
2022/04/09 Python
Tomcat安装使用及部署Web项目的3种方法汇总
2022/08/14 Servers