zoukankan      html  css  js  c++  java
  • ThinkPHP C+F方式

    ThinkPHP常用C+F方法进行配置设置于缓存设置

    比如常见的 C(F('smtp'),'smtp');表示获取F方法中smtp缓存,设置配置为smtp函数

    C方法是ThinkPHP用于设置、获取,以及保存配置参数的方法,使用频率较高。
    了解C方法需要首先了解下ThinkPHP的配置,因为C方法的所有操作都是围绕配置相关的。ThinkPHP的配置文件采用PHP数组格式定义。
    由于采用了函数重载设计,所以用法较多,我们来一一说明下。
    设置参数

    C('DB_NAME','thinkphp');=C('db_name','thinkphp');

    表示设置DB_NAME配置参数的值为thinkphp,配置参数不区分大小写

    项目的所有参数在未生效之前都可以通过该方法动态改变配置,最后设置的值会覆盖前面设置或者惯例配置里面的定义,也可以使用参数配置方法添加新的配置。
    支持二级配置参数的设置,例如:

    1. C('USER.USER_ID',8);

    例如:

    //C('action','login');
    //dump(C('action'));

    模板显示:
    {:C("SITENAME")}
     

    配置参数不建议超过二级。
    如果要设置多个参数,批量设置:

    $smtp_server = "abc";
    $smtp_port = "25";
    $smtp_userName = "aa";
    $smtp_password = "aa";

    $smtp = array('MAIL_ADDRESS'=>$smtp_address,'MAIL_SMTP'=>$smtp_server,'MAIL_PORT'=>$_POST['port'],'MAIL_LOGINNAME'=>$smtp_userName,'MAIL_PASSWORD'=>$smtp_password,'MAIL_CHARSET'=>'UTF-8','MAIL_AUTH'=>true,'MAIL_HTML'=>true);

    C($smtp,'smtp');//

    dump(C());可以见到以下输出

    ["mail_address"] => string(20) "xx"
      ["mail_smtp"] => string(17) "xx"
      ["mail_port"] => NULL
      ["mail_loginname"] => string(20) "abc"
      ["mail_password"] => string(9) "aa"
      ["mail_charset"] => string(5) "aa"
      ["mail_auth"] => bool(true)
      ["mail_html"] => bool(true)

    也可以支持获取二级配置参数,例如

    1. $userId = C('USER.USER_ID');

    如果传入的配置参数为空,表示获取全部的参数:

    1. $config = C();

    保存设置
    3.1版本增加了一个永久保存设置参数的功能,仅针对批量赋值的情况,例如:

    1. $config['user_id'] = 1;
    2. $config['user_type'] = 1;
    3. C($config,'name');

    在批量设置了config参数后,会连同当前所有的配置参数保存到缓存文件(或者其他配置的缓存方式)。

    其中name就是前面保存参数时用的缓存的标识,必须一致才能正确取回保存的参数。取回的参数会和当前的配置参数合并,无需手动合并。

    F方法

    F方法的特点是:
    简单数据缓存;
    文件形式保存;
    采用PHP返回数据方式加载缓存;
    支持子目录缓存以及自动创建;
    支持删除缓存和批量删除;

    1. F('data','test data');

    默认的保存起始路径是DATA_PATH(该常量在默认配置位于RUNTIME_PATH.'Data/'下面),也就是说会生成文件名为DATA_PATH.'data.php'的缓存文件。
    注意:确保你的缓存标识的唯一,避免数据覆盖和冲突。
    下次读取缓存数据的时候,使用:

    1. $Data = F('data');
    我们可以采用子目录方式保存,例如:
      1. F('user/data',$data); // 缓存写入
      2. F('user/data'); // 读取缓存

    删除缓存

    删除缓存也很简单,使用:

    1. F('data',NULL); 

    第二个参数传入NULL,则表示删除标识为data的数据缓存。
    支持批量删除功能,尤其是针对子目录缓存的情况,假设我们要删除user子目录下面的所有缓存数据,可以使用:
    F('user/*',NULL);

    L方法

    1. L('LANG_VAR','语言定义');
    语言定义不区分大小写,所以下面也是等效的 L('lang_var','语言定义');

    $lang['lang_var1'] = '语言定义1';
    $lang['lang_var2'] = '语言定义2';
    $lang['lang_var3'] = '语言定义3';
    L($lang);

    模板中使用

    {$Think.lang.lang_var}

     
  • 相关阅读:
    Populating Next Right Pointers in Each Node II
    Populating Next Right Pointers in Each Node
    Construct Binary Tree from Preorder and Inorder Traversal
    Construct Binary Tree from Inorder and Postorder Traversal
    Path Sum
    Symmetric Tree
    Solve Tree Problems Recursively
    632. Smallest Range(priority_queue)
    609. Find Duplicate File in System
    poj3159最短路spfa+邻接表
  • 原文地址:https://www.cnblogs.com/yun007/p/3732159.html
Copyright © 2011-2022 走看看