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 命令行工具 shell_exec, exec, passthru, system详细使用介绍
Sep 11 PHP
记录mysql性能查询过程的使用方法
May 02 PHP
php制作中间带自己定义图片二维码的方法
Jan 27 PHP
3个PHP多维数组转为一维数组的方法实例
Mar 13 PHP
开源php中文分词系统SCWS安装和使用实例
Apr 11 PHP
php根据用户语言跳转相应网页
Nov 04 PHP
深入分析PHP优化及注意事项
Jul 04 PHP
Yii遍历行下每列数据的方法
Oct 17 PHP
PHP调试及性能分析工具Xdebug详解
Feb 09 PHP
Laravel中log无法写入问题的解决
Jun 17 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
PHP INT类型在内存中占字节详解
Jul 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 文章调用类代码
2011/08/11 PHP
解析PHP提交后跳转
2013/06/23 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
PHP Laravel 上传图片、文件等类封装
2017/08/16 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
用javascript实现自定义标签
2007/05/08 Javascript
JS去除字符串的空格增强版(可以去除中间的空格)
2009/08/26 Javascript
jquery.ui.progressbar 中文文档
2009/11/26 Javascript
从零开始学习jQuery (四) jQuery中操作元素的属性与样式
2011/02/23 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
jQuery插件Tmpl的简单使用方法
2015/04/27 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
2015/06/25 Javascript
javascript实现uploadify上传格式以及个数限制
2015/11/23 Javascript
利用Angular.js限制textarea输入的字数
2016/10/20 Javascript
jQuery插件ContextMenu自定义图标
2017/03/15 Javascript
原生javascript上传图片带进度条【实例分享】
2017/04/06 Javascript
利用JS制作万年历的方法
2017/08/16 Javascript
Vue组件中prop属性使用说明实例代码详解
2018/05/31 Javascript
AntV F2和vue-cli构建移动端可视化视图过程详解
2019/10/08 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
vue 使用localstorage实现面包屑的操作
2020/11/16 Javascript
[02:12]DOTA2英雄基础教程 变体精灵
2013/12/16 DOTA
python计算两个数的百分比方法
2018/06/29 Python
python中for循环输出列表索引与对应的值方法
2018/11/07 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
2019/04/18 Python
如何实现更换Jupyter Notebook内核Python版本
2020/05/18 Python
世界上最好的精品店:Shoptiques
2018/02/05 全球购物
澳大利亚厨房和家用电器购物网站:Bing Lee
2021/01/11 全球购物
会计员岗位职责
2014/03/15 职场文书
销售员自我评价
2015/03/11 职场文书
自定义函数实现单词排序并运用于PostgreSQL(实现代码)
2021/04/22 PostgreSQL
Python 中的单分派泛函数你真的了解吗
2021/06/22 Python
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python
人民币符号
2022/02/17 杂记
MySQL 主从复制数据不一致的解决方法
2022/03/18 MySQL