• ThinkPHP框架


    一 .框架的概念

    一堆代码的集合,里面有变量 函数 类 常量 设计模式MVC等等

    框架可以帮助我们快速,稳定,高效的搭建程序系统

    易维护,灵活

    使用框架的过程可以使我们的注意力全部集中到业务层面,而无须关心程序的底层构架

    二.ThinkPHP框架的目录结构

    在TinkPHPLibraryThink文件夹中,几个重要的文件:

    1.App.class.php  框架核心类文件

    2.Think.class.php  每次请求都要执行的类

    3.Controller.class.php 基础控制类,控制类的父类

    4.Model.class.php 模型的父类

    5.View.class.php  视图的父类

    三.ThinkPHP路由

    四种模式  模式中的m c a / s 都是tp框架的配置文件convention.php中定义好的

    1.普通模式

    m代表模块  c控制器  a操作方法(控制器里的方法名)

    2.pathinfo模式(ThinkPHP中默认使用此模式)

    3.rewrite()重写模式

    4.兼容模式

    参数s=/分组/控制器/方法

    四.ThinkPHP控制器

    如何创建一个属于自己的控制器

    创建的目录:

    如何创建:

    ThinkPHP模板的调用:模板调用通过display方法来调用

    display的用法:

    ① 该方法下调用该方法对应的模板  diaplay()

    ② 该方法下调用该控制器下的除自身外的其他模板 display('操作名即模板名')

    ③ 调用其他控制器下的模板 display('控制器名/操作名即模板名')

    ④ 绝对路径 display('绝对路径')

    五.配置文件

    1.核心配置文件

    2.项目的公共配置文件(即是前台又是后台的配置文件)

    3.模块(home)的配置文件

    说明:加载顺序:核心配置文件>项目的公共配置文件(即是前台又是后台的配置文件)>模块(home)的配置文件

    优先级顺序:模块(home)的配置文件>项目的公共配置文件(即是前台又是后台的配置文件)>核心配置文件

    4.配置文件读取

    通过C函数来读取

    例如:

    设置配置文件:

     六.系统常量

    七.ThinkPHP的两种模式

    从入口文件里面写:

    define('APP_DEBUG',true);这是调试模式

    define('APP_DEBUG',false);这是运行模式

    八.显示日志信息

    九.控制器操作

    1.空操作

    系统找不到请求的方法时,会定位到_empty()这个方法处理

    2.空控制器

    3.跨控制器调用

    十.Tp框架语法

    1.判断

    <if condition='表达式'>

    <elseif condition='表达式'/>

    <else/>

    </if>

    表达式中的运算符:

    php运算符 对应TP中的运算符 英文全称
    < lt less than
    > gt greater than
    == eq equal
    >= egt equal or greater than
    <= elt equal or less than

    2.循环

    ① <volist></volist>

    volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。在控制器中首先对模版赋值:

    1. $User = M('User');
    2. $list = $User->limit(10)->select();
    3. $this->assign('list',$list);

    在模版定义如下, name="list" id="vo">

    • {$vo.id}:{$vo.name}<br/>
    • </volist>

    Volist标签的name属性表示模板赋值的变量名称,因此不可随意在模板文件中改变。id表示当前的 name="list" id="data">

    • {$data.id}:{$data.name}<br/>
    • </volist>

    支持输出查询结果中的部分数据,例如输出其中的第5~15条记录

    1. <volist name="list" id="vo" offset="5" length='10'>
    2. {$vo.name}
    3. </volist>

    输出偶数记录

    1. <volist name="list" id="vo" mod="2" >
    2. <eq name="mod" value="1">{$vo.name}</eq>
    3. </volist>

    Mod属性还用于控制一定记录的换行,例如:

    1. <volist name="list" id="vo" mod="5" >
    2. {$vo.name}
    3. <eq name="mod" value="4"><br/></eq>
    4. </volist>

    为空的时候输出提示:

    1. <volist name="list" id="vo" empty="暂时没有数据" >
    2. {$vo.id}|{$vo.name}
    3. </volist>

    empty属性不支持直接传入html语法,但可以支持变量输出,例如:

    1. $this->assign('empty','<span class="empty">没有数据</span>');
    2. $this->assign('list',$list);

    然后在模板中使用:

    1. <volist name="list" id="vo" empty="$empty" >
    2. {$vo.id}|{$vo.name}
    3. </volist>

    输出 name="list" id="vo" key="k" >

    • {$k}.{$vo.name}
    • </volist>

    如果没有指定key属性的话,默认使用 name="list" id="vo" >

    • {$i}.{$vo.name}
    • </volist>

    如果要输出数组的索引,可以直接使用key变量,和 name="list" id="vo" >

    • {$key}.{$vo.name}
    • </volist>

    模板中可以直接使用函数设定数据集,而不需要在控制器中给模板变量赋值传入数据集变量,如:

    1. <volist name=":fun('arg')" id="vo">
    2. {$vo.name}
    3. </volist>

    ② <for></for>

    用法:

    1. <for start="开始值" end="结束值" comparison="" step="步进值" name="</for>

    开始值、结束值、步进值和

    1. <for start="1" end="100">
    2. {$i}
    3. </for>

    解析后的代码是

    1. for ($i=1;$i<100;$i+=1){
    2. echo $i;
    3. }

    ③ <foreach></foreach>

    foreach标签类似与volist标签,只是更加简单,没有太多额外的属性,例如: {$vo.id}:{$vo.name}

    name表示数据源 item表示 name="list" item="vo" >

    • {$key}|{$vo.id}:{$vo.name}
    • </foreach>

    也可以定义索引的变量名

    1. <foreach name="list" item="vo" key="k" >
    2. {$k}|{$vo.id}:{$vo.name}
    3. </foreach>

     十一.连接数据库

    将上图的配置拷贝到下图中

    十二.创建Model模型

    在Application目录下创建目录Model,在Model文件夹下创建模型类GoodsModel.class.php

     1.第一种实例化模型的方法(这是GoodsModel的对象)

    2.第二种实例化模型的方法(这是基础模型类Model的对象)

    3.第三种实例化模型的方法(这是基础模型类Model的对象)

    说明:在TP3.2之后的版本M()和D()是一样的,在GoodsModel.class.php中我们并没有写代码,所有的业务逻辑都是基础模型类Model.class.php来实现的

    十三.表操作

    增加:M('表名')->add()

    删除:M('表名')->delete()

    修改:M('表名')->save()

    查询:M('表名')->select()

    1.普通查询

    2.条件查询

    havingwhere的区别

    区别一:

    where后面跟的字段必须在数据表中有

    having后面跟的字段必须在数据集中有

    区别二:

    select * from 表  where 条件  group by 分组  having 条件

    3.聚合函数

    4.数据的添加

    通过关联数组的方式添加

    5.修改数据

    6.删除数据

    7.直接执行SQL语句

  • 相关阅读:
    BC高精确度函数使用。
    thinkPHP中_initialize方法实例分析
    MySQL中concat函数
    使用docker打造spark集群
    zhihu spark集群,书籍,论文
    Windows下安装使用curl命令
    数据可视化的优秀入门书籍有哪些,D3.js 学习资源汇总
    2015互联网+影响力报告发布
    The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
    centos linux中怎么查看和修改计算机名/etc/sysconfig/network
  • 原文地址:https://www.cnblogs.com/wfc139/p/9215776.html
Copyright © 2020-2023  润新知