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
一个简易需要注册的留言版程序
Oct 09 PHP
PHP逐行输出(ob_flush与flush的组合)
Feb 04 PHP
PHP中3种生成XML文件方法的速度效率比较
Oct 06 PHP
Php中用PDO查询Mysql来避免SQL注入风险的方法
Apr 25 PHP
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
Aug 05 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
Dec 15 PHP
thinkPHP中session()方法用法详解
Dec 08 PHP
PHP实现阿里大鱼短信验证的实例代码
Jul 10 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
PHP实现网站应用微信登录功能详解
Apr 11 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
Aug 13 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高手?学会“懒惰”的编程
2006/12/05 PHP
PHP获取毫秒级时间戳的方法
2015/04/15 PHP
jQuery使用手册之一
2007/03/24 Javascript
javascript检查日期格式的函数[比较全]
2008/10/17 Javascript
让Firefox支持event对象实现代码
2009/11/07 Javascript
JS获取整个页面文档的实现代码
2011/12/15 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
jQuery获取对象简单实现方法小结
2014/10/30 Javascript
基于jquery实现日历签到功能
2020/09/11 Javascript
JavaScript常用基础知识强化学习
2015/12/09 Javascript
利用js编写响应式侧边栏
2016/09/17 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
2016/12/21 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
Node实战之不同环境下配置文件使用教程
2018/01/02 Javascript
js最简单的双向绑定实例讲解
2018/01/02 Javascript
javascript+css实现俄罗斯方块小游戏
2020/06/28 Javascript
nuxt 自定义 auth 中间件实现令牌的持久化操作
2020/11/05 Javascript
详解Vue中的watch和computed
2020/11/09 Javascript
50行代码实现贪吃蛇(具体思路及代码)
2013/04/27 Python
Python实现windows下模拟按键和鼠标点击的方法
2015/03/13 Python
python利用正则表达式搜索单词示例代码
2017/09/24 Python
pandas将DataFrame的列变成行索引的方法
2018/04/10 Python
如何使用Python的Requests包实现模拟登陆
2018/04/27 Python
python读取txt文件中特定位置字符的方法
2018/12/24 Python
解决pyttsx3无法封装的问题
2018/12/24 Python
django获取from表单multiple-select的value和id的方法
2019/07/19 Python
Html5页面中的返回实现的方法
2018/02/26 HTML / CSS
丝芙兰巴西官方商城:SEPHORA巴西
2016/10/31 全球购物
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
Stührling手表官方网站:男女高品质时尚手表的领先零售商
2021/01/07 全球购物
女方婚礼新郎答谢词
2014/01/11 职场文书
婚前协议书标准版
2014/10/19 职场文书
《爬天都峰》教学反思
2016/02/23 职场文书
Java实现多文件上传功能
2021/06/30 Java/Android
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL