Rumah  >  Artikel  >  pembangunan bahagian belakang  >  关于ThinkPHP3.2框架自定义配置和加载的用法

关于ThinkPHP3.2框架自定义配置和加载的用法

不言
不言asal
2018-06-14 15:26:021970semak imbas

这篇文章主要介绍了ThinkPHP3.2框架自定义配置和加载用法,结合实例形式分析了thinkPHP3.2框架使用自定义配置保存预定义数组数据相关操作技巧,需要的朋友可以参考下

本文实例讲述了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(
&#39;1&#39; => &#39;查询物流&#39;,
&#39;2&#39; => &#39;办理退货&#39;,
&#39;3&#39; => &#39;咨询退货&#39;,
&#39;4&#39; => &#39;咨询佣金&#39;,
&#39;5&#39; => &#39;咨询规则&#39;,
&#39;0&#39; => &#39;其他&#39;
);

就像上面代码那样,定义好之后,存成一个文件,当我们需要调用这个这个规则的时候,就include或者require,然后直接用$type这个变量去找就行了,比如:

require_once(&#39;type.php&#39;);
echo $type[1]; //输出&#39;查询物流&#39;
foreach($type as $k => $v){ //直接打印出最上面的下拉菜单代码,
echo "<option value = &#39;{$k}&#39; >{$v}</option>";
}

如果在ThinkPHP,要是想引入文件,只能用绝对路径,在include和require用__APP__或者__ROOT__快捷入口是不行的,U()造链函数我没试,应该是可以实现的。

还有一种实现方式,也是我在这里推荐的,就是直接把这套规则定义为这个网站的配置文件,当我们用的时候,用C()加载配置函数把这个数组加载出来赋给一个变量就好了。

上代码了:

把你定义的规则放到conf下,这是私有配置文件,只有Home这个入口的才生效,也可以放到公共配置文件下,细节可以去查手册。

return array(
&#39;REASON_AND_TYPE&#39; => array(
&#39;1&#39; => &#39;查询物流&#39;,
&#39;2&#39; => &#39;办理退货&#39;,
&#39;3&#39; => &#39;咨询退货&#39;,
&#39;4&#39; => &#39;咨询佣金&#39;,
&#39;5&#39; => &#39;咨询规则&#39;,
&#39;0&#39; => &#39;其他&#39;
)
);

注意加上return;

注意,格式,return一个数组,键名是大写的(为了好看),键值是你要定义的东西,在这里我们定义的是一个数组。

修改config.php文件

<?php
return array(
//&#39;配置项&#39;=>&#39;配置值&#39;
&#39;DB_TYPE&#39; => &#39;mysqli&#39;, // 数据库类型
&#39;DB_HOST&#39; => &#39;localhost&#39;, // 服务器地址
&#39;DB_NAME&#39; => &#39;kefu&#39;, // 数据库名
&#39;DB_USER&#39; => &#39;root&#39;, // 用户名
&#39;DB_PWD&#39; => &#39;root&#39;, // 密码
&#39;DB_PORT&#39; => &#39;&#39;, // 端口
&#39;DB_PREFIX&#39; => &#39;&#39;, // 数据库表前缀
&#39;LOAD_EXT_CONFIG&#39; => &#39;reasonAndType&#39;, //这是我们自己添加的,LOAD_EXT_CONFIG键名固定,键值是你的php文件的文件名,那个数组名字在这里就不用管了
);

这就算配置好了。

下面讲调用这套规则:

$reasonAndTypeX = C(&#39;REASON_AND_TYPE&#39;);
//直接用数组名字就可以了,C()函数能加载配置里的键名所代表的值,赋给变量

注意,C()函数的里面的值,是reasonAndType这个文件的值。

var_dump($reasonAndTypeX);

就会输入这个数组的内容

array(
&#39;1&#39; => &#39;查询物流&#39;,
&#39;2&#39; => &#39;办理退货&#39;,
&#39;3&#39; => &#39;咨询退货&#39;,
&#39;4&#39; => &#39;咨询佣金&#39;,
&#39;5&#39; => &#39;咨询规则&#39;,
&#39;0&#39; => &#39;其他&#39;
);

这样就完成了自定义配置文件的设置和加载。

如果‘REASON_AND_TYPE'没有配置,则会返回一个null值;

当然,你也可以设置默认值,代码如下:

// 如果REASON_AND_TYPE尚未设置的话,则返回default_config字符串
C(&#39;my_config&#39;,null,&#39;default_config&#39;);

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

thinkPHP框架如何实现多表查询

关于thinkPHP框架动态配置的用法分析

Atas ialah kandungan terperinci 关于ThinkPHP3.2框架自定义配置和加载的用法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn