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 相关文章推荐
BBS(php &amp; mysql)完整版(四)
Oct 09 PHP
屏蔽机器人从你的网站搜取email地址的php代码
Nov 14 PHP
用php制作简单分页(从数据库读取记录)的方法详解
May 04 PHP
解析php中获取系统信息的方法
Jun 25 PHP
浅析51个PHP处理字符串的函数
Aug 02 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
May 20 PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
Oct 14 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
Apr 03 PHP
laravel实现简单用户权限的示例代码
May 28 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 PHP
PHP 实现链式操作
Mar 09 PHP
imagettftext() 失效,不起作用
Mar 09 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
laravel 4安装及入门图文教程
2014/10/29 PHP
php 查找数组元素提高效率的方法详解
2017/05/05 PHP
laravel http 自定义公共验证和响应的方法
2019/09/29 PHP
js 延迟加载 改变JS的位置加快网页加载速度
2012/12/11 Javascript
网页加载时页面显示进度条加载完成之后显示网页内容
2012/12/23 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
js的toUpperCase方法用法实例
2015/01/27 Javascript
利用jquery实现下拉框的禁用与启用
2016/12/07 Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
2017/04/13 Javascript
canvas绘制爱心的几种方法总结(推荐)
2017/10/31 Javascript
JavaScript内存泄漏的处理方式
2017/11/20 Javascript
vue.js 使用axios实现下载功能的示例
2018/03/05 Javascript
JavaScript 接口原理与用法实例详解
2020/05/12 Javascript
[02:27]刀塔重生降临
2015/10/14 DOTA
Python实现批量下载文件
2015/05/17 Python
Python读写ini文件的方法
2015/05/28 Python
Python的面向对象编程方式学习笔记
2016/07/12 Python
Python安装第三方库及常见问题处理方法汇总
2016/09/13 Python
Python读csv文件去掉一列后再写入新的文件实例
2017/12/28 Python
详解配置Django的Celery异步之路踩坑
2018/11/25 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
使用Django2快速开发Web项目的详细步骤
2019/01/06 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
2019/01/14 Python
Python实现的爬取小说爬虫功能示例
2019/03/30 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
Python timeit模块的使用实践
2020/01/13 Python
利用Python自动化操作AutoCAD的实现
2020/04/01 Python
美国最受欢迎的童装品牌之一:The Children’s Place
2016/07/23 全球购物
金山毒霸系列的笔试题
2013/04/13 面试题
老教师工作总结的自我评价
2013/09/27 职场文书
反对邪教标语
2014/06/30 职场文书
门面房租房协议书
2014/08/20 职场文书
报案材料怎么写
2015/05/25 职场文书
新生开学寄语大全
2015/05/28 职场文书
图书借阅制度范本
2015/08/06 职场文书
MySQL 执行数据库更新update操作的时候数据库卡死了
2022/05/02 MySQL