ThinkPHP3.2框架自定义配置和加载用法示例
2018-09-07 13:25
本文实例讲述了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>
←实际效果
←数据库存的效果
←显示的时候。
这个例子里,实际显示的是汉字,实际的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相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
文章标题:ThinkPHP3.2框架自定义配置和加载用法示例
文章链接:http://soscw.com/index.php/essay/12566.html