zoukankan      html  css  js  c++  java
  • php框架tp3.2使用手册随笔

    入口文件:index.php
    目录结构:
    1、application //应用程序目录

    config //配置文件目录

    controllers //控制器目录

    admin //后台控制器目录

    home //前台控制器目录

    models //数据库模型目录

    views //视图目录

    admin

    home
    2、framework //框架目录
    core //框架核心类
    databases //数据库驱动类
    helpers //辅助函数目录
    libraries //类库目录
    3、public //前台静态资源目录
    css
    images
    js
    uploads //文件上传目录

    4、index.php //入口文件
    控制器:

    控制器类的命名方式是:控制器名(驼峰法,首字母大写)+Controller

    控制器文件的命名方式是:类名+class.php(类文件后缀)

     控制器方法:

    C()用于设置,获取以及保存配置参数的方法

    M()连接表名

    U()用于URL的动态生成:只需要写模块文件名/控制器/方法

      ajaxReturn($data,数据格式):返回AJAX格式的数据

      success(‘提示内容’,‘页面地址’,‘跳转时间’):当页面出现错误的时候跳转到上一个页面;

    I(‘变量类型.下标’,获取失败返回的数值/字符串,对变量进行过滤;获取系统输入变量

      I(‘变量类型,变量名/修饰符’);s=>字符串;d=>整型,b=>布尔,a=>数组,f=>浮点

    请求类型

      IS_POST :  判断是否以POST方式提交

      IS_GET : 判断是否以GET方式提交

      IS_AJAX : 判断是否以AJAX方式提交

    WHERE

      $uer = M("数据表名“);/实例化对象

      $data=$uer->where()->select()//带条件的查询语句

    ALIAS

      $data = $uer ->alias('a')//设置镖的别名

    FIELD用于查询

      field()//返回需要的字段

    ORDER

      order(‘字段 排序方法’)//对数据进行排列asc 正常排序desc倒叙

    LIMIT  限制结果数量

      limit()限制结果数量  也可以是数量区间

    PAGE 分页

      page(‘页码,数量条数’)

    GROUP

      group()分组

    JOIN 多表连接

      完整示例:

      $table = M(‘表名’);

      $data = $table->field('需要查询的字段')

      ->join(表1 on   表2 .字段=表1.字段)

      ->join(表3 on    表2.字段=表3.字段)

      ->select();

                            模板

    默认的模板文件定义规则:视图目录/[模板主题/]控制器名/操作名+模板后缀

    assign方法对模板变量赋值:$this->assign('name',$value);

      assign方法必须在display和show方法之前调用,并且系统只会输出设定的变量,其它变量不会输出(系统变量例外),一定程度上保证了变量的安全性。赋值   后,就可以在模板文件中输出变量了,如果使用的是内置模板的话,就可以这样输出: 

    渲染模板调用格式:display('[模板文件]'[,'字符编码'][,'输出类型'])   

    // 不带任何参数 自动定位当前操作的模板文件
      $this->display();
      // 指定模板输出
      $this->display('edit');
      //表示调用当前控制器下面的edit模板
      $this->display('Member:read');

    输出变量

      例如,在控制器中我们给模板变量赋值:

        $name = 'ThinkPHP';
        $this->assign('name',$name);
        $this->display();
    

      然后就可以在模板中使用:

        Hello,{$name}!
    

      模板编译后的结果就是:

     Hello,<?php echo($name);?>!
    //注意模板标签的{$之间不能有任何的空格,否则标签无效。  

      普通标签默认开始标记是{,结束标记是 }。也可以通过设置TMPL_L_DELIMTMPL_R_DELIM进行更改。

    使用函数:

      {$data.name|md5} 

      多个参数需要调用

      {$create_time|date="y-m-d",###}

      多个函数之间用“|”分割

      函数会按照从左到右的顺序依次调用。

    三元运算符

    {$status?'正常':'错误'}
    {$info['status']?$info['msg']:$info['error']}

    注意:三元运算符中暂时不支持点语法。

    内置标签

    标签名作用包含属性
    include 包含外部模板文件(闭合) file
    import 导入资源文件(闭合 包括js css load别名) file,href,type,value,basepath
    volist 循环数组数据输出 name,id,offset,length,key,mod
    foreach 数组或对象遍历输出 name,item,key
    for For循环数据输出 name,from,to,before,step
    switch 分支判断输出 name
    case 分支判断输出(必须和switch配套使用) value,break
    default 默认情况输出(闭合 必须和switch配套使用)
    compare 比较输出(包括eq neq lt gt egt elt heq nheq等别名) name,value,type
    range 范围判断输出(包括in notin between notbetween别名) name,value,type
    present 判断是否赋值 name
    notpresent 判断是否尚未赋值 name
    empty 判断数据是否为空 name
    notempty 判断数据是否不为空 name
    defined 判断常量是否定义 name
    notdefined 判断常量是否未定义 name
    define 常量定义(闭合) name,value
    assign 变量赋值(闭合) name,value
    if 条件判断输出 condition
    elseif 条件判断输出(闭合 必须和if标签配套使用) condition
    else 条件不成立输出(闭合 可用于其他标签)
    php 使用php代码

      volist标签

      volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。

    <volist name="list" id="vo">
    {$vo.id}:{$vo.name}<br/>
    </volist>  

    if标签

    <if condition="$id < 5 ">value1
        <else /> value2
    </if>

    模板替换

    __ROOT__: 会替换成当前网站的地址(不含域名) 
    __APP__: 会替换成当前应用的URL地址 (不含域名)
    __MODULE__:会替换成当前模块的URL地址 (不含域名)
    __CONTROLLER__(__或者__URL__ 兼容考虑): 会替换成当前控制器的URL地址(不含域名)
    __ACTION__:会替换成当前操作的URL地址 (不含域名)
    __SELF__: 会替换成当前的页面URL
    __PUBLIC__:会被替换成当前网站的公共目录 通常是 /Public

                                        调试模式

    一般位于入口文件(tp3.2/index.php)中。

     // 开启调试模式                                 // 关闭调试模式

      define('APP_DEBUG', true);                    define('APP_DEBUG', false);

     优势:

    • 开启日志记录,任何错误信息和调试信息都会详细记录,便于调试;
    • 关闭模板缓存,模板修改可以即时生效;
    • 记录SQL日志,方便分析SQL;
    • 关闭字段缓存,数据表字段修改不受缓存影响;
    • 严格检查文件大小写(即使是Windows平台),帮助你提前发现Linux部署可能导致的隐患问题;
    • 通过页面Trace功能更好的调试和发现错误;

                                     缓存

    数据缓存

    // 设置缓存              // 缓存数据300秒          // 读取缓存              // 删除缓存
    S('name',$value);            S('name',$value,300);        $value = S('name');          S('name',null);
    缓存路径: tp3.2/Application/Runtime/Temp

    快速缓存

    快速缓存Data数据    快速缓存Data数据,保存到指定的目录    获取缓存数据        删除缓存数据

    F('data',$Data);      F('data',$Data,TEMP_PATH);          $Data = F('data');        F('data',NULL);
    缓存路径:  tp3.2/Application/Runtime/Data
     
    
    
    
     
  • 相关阅读:
    【Prince2科普】Prince2的七大原则(6)
    6.08 PMO的生存挑战-这些企业的痛你遇到了吗?
    【Prince2科普】Prince2的七大原则(5)
    【Prince2科普】Prince2的七大原则(4)
    【Prince2科普】Prince2的七大原则(3)
    【Prince2科普】Prince2的七大原则(2)
    项目管理三大认证体系,该选择谁?
    事件委托
    关于js中pushstate popstate
    js中标签的获取
  • 原文地址:https://www.cnblogs.com/f-z-g-boke/p/9839008.html
Copyright © 2011-2022 走看看