zoukankan      html  css  js  c++  java
  • ThinkPHP3.2自定义配置和加载

    有时候我们会有一些规则定义每个数字对应的实际内容,比如说在下拉菜单的时候:

    [html] view plain copy
     
    1. <select name="reasonAndType" id="">  
    2.     <option value="1">查询物流</option>  
    3.     <option value="2">办理退货</option>  
    4.     <option value="3">咨询退货</option>  
    5.     <option value="4">咨询佣金</option>  
    6.     <option value="5">咨询规则</option>  
    7.     <option value="0">其他</option>  
    8. </select>  



    ThinkPHP3.2自定义配置和加载 - 奥古斯宏 - 奥古斯宏的博客 ←实际效果。ThinkPHP3.2自定义配置和加载 - 奥古斯宏 - 奥古斯宏的博客←数据库存的效果。ThinkPHP3.2自定义配置和加载 - 奥古斯宏 - 奥古斯宏的博客 ←显示的时候。


    这个例子里,实际显示的是汉字,实际的value值是数字,等我们向数据库存的时候也是存数字,等我们从数据库获取的时候也是取数字,显示的时候也是显示汉字;

    所以我们需要一个类似字典的东西,它定义了那个数字对应的汉字是什么,定义的实际意义是什么;

    用数据库能够实现这个效果,但我们不用,因为对数据库的操作开销太大;
    如果是普通的PHP环境,我们可以把规则单独存到一个文件里,内容是一个数组:

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

    type.PHP

    就像上面代码那样,定义好之后,存成一个文件,当我们需要调用这个这个规则的时候,就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');
  • 相关阅读:
    批量备份mysql数据库(shell编程)
    批量检查多个网址是否正常(shell编程)
    就linux三剑客简单归纳
    sql语句浅谈以及mysql遇到的问题解决见解
    linux shell每天一阅 -- 安装nginx以及apache
    Linux文件系统检查错误
    Linux账号管理和ACL
    简书博客
    Block内的强引用
    一次没有意义的优化
  • 原文地址:https://www.cnblogs.com/laijinquan/p/7284060.html
Copyright © 2011-2022 走看看