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}

     
  • 相关阅读:
    ThinkPhp框架分页查询和部分框架知识
    tp框架增删改
    WAMP中mysql服务突然无法启动 解决方法
    thinkphp框架 的 链接数据库和操作数据
    php 全局使用laravel的dd和dump
    给centos装图形界面 widowsx
    marquee标签的使用
    微信公众号开发入门教程
    laravel admin引入css js报错 https
    利用Croppie裁剪图片并后台保存
  • 原文地址:https://www.cnblogs.com/yun007/p/3732159.html
Copyright © 2011-2022 走看看