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语法(3)
Oct 09 PHP
php 图片上传类代码
Jul 17 PHP
PHP学习之正则表达式
Apr 17 PHP
php入门学习知识点四 PHP正则表达式基本应用
Jul 14 PHP
基于PHP遍历数组的方法汇总分析
Jun 08 PHP
php+mysql大量用户登录解决方案分析
Dec 29 PHP
php eval函数一句话木马代码
May 21 PHP
Symfony2框架创建项目与模板设置实例详解
Mar 17 PHP
利用php输出不同的心形图案
Apr 22 PHP
yii2 开发api接口时优雅的处理全局异常的方法
May 14 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
Aug 24 PHP
PHP中多字节字符串操作实例详解
Aug 23 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/11/26 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
2011/08/15 PHP
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
2014/10/20 PHP
nodejs实用示例 缩址还原
2010/12/28 NodeJs
zTree插件之单选下拉菜单实例代码
2013/11/07 Javascript
jquery提交form表单时禁止重复提交的方法
2014/02/13 Javascript
js动态修改整个页面样式达到换肤效果
2014/05/23 Javascript
JavaScript创建一个object对象并操作对象属性的用法
2015/03/23 Javascript
jquery实现表格隔行换色效果
2015/11/19 Javascript
jQuery插件HighCharts绘制2D带有Legend的饼图效果示例【附demo源码下载】
2017/03/10 Javascript
vue.js开发环境搭建教程
2017/05/04 Javascript
vue.js 初体验之Chrome 插件开发实录
2017/05/13 Javascript
JS 60秒后重新发送验证码的实例讲解
2017/07/26 Javascript
JavaScript生成一个不重复的ID的方法示例
2019/09/16 Javascript
layui实现根据table数据判断按钮显示情况的方法
2019/09/26 Javascript
Vue实现购物小球抛物线的方法实例
2020/11/22 Vue.js
Vue实现todo应用的示例
2021/02/20 Vue.js
Python常用内置模块之xml模块(详解)
2017/05/23 Python
Python 循环终止语句的三种方法小结
2019/06/24 Python
Django接收自定义http header过程详解
2019/08/23 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
台湾租车首选品牌:IWS艾维士租车
2019/05/03 全球购物
俄罗斯女装店:12storeez
2019/10/25 全球购物
物业管理计划书
2014/01/10 职场文书
办公自动化毕业生求职信
2014/03/09 职场文书
小学毕业寄语大全
2014/04/03 职场文书
对孩子的寄语
2014/04/09 职场文书
网络营销实训总结
2015/08/03 职场文书
三严三实·严以修身心得体会
2016/01/15 职场文书
工作建议书范文
2019/07/08 职场文书
读《钢铁是怎样炼成的》有感:百炼方成钢
2019/11/05 职场文书
Mysql基础之常见函数
2021/04/22 MySQL
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS
Win10服务主机占用内存怎么办?Win10服务主机进程占用大量内存解决方法
2022/09/23 数码科技