ThinkPHP框架
一 .框架的概念
一堆代码的集合,里面有变量 函数 类 常量 设计模式MVC等等
框架可以帮助我们快速,稳定,高效的搭建程序系统
易维护,灵活
使用框架的过程可以使我们的注意力全部集中到业务层面,而无须关心程序的底层构架
二.ThinkPHP框架的目录结构


在TinkPHP\Library\Think文件夹中,几个重要的文件:
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标签进行输出。在控制器中首先对模版赋值:
- $User = M('User');
- $list = $User->limit(10)->select();
- $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条记录
- <volist name="list" id="vo" offset="5" length='10'>
- {$vo.name}
- </volist>
输出偶数记录
- <volist name="list" id="vo" mod="2" >
- <eq name="mod" value="1">{$vo.name}</eq>
- </volist>
Mod属性还用于控制一定记录的换行,例如:
- <volist name="list" id="vo" mod="5" >
- {$vo.name}
- <eq name="mod" value="4"><br/></eq>
- </volist>
为空的时候输出提示:
- <volist name="list" id="vo" empty="暂时没有数据" >
- {$vo.id}|{$vo.name}
- </volist>
empty属性不支持直接传入html语法,但可以支持变量输出,例如:
- $this->assign('empty','<span class="empty">没有数据</span>');
- $this->assign('list',$list);
然后在模板中使用:
- <volist name="list" id="vo" empty="$empty" >
- {$vo.id}|{$vo.name}
- </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>
模板中可以直接使用函数设定数据集,而不需要在控制器中给模板变量赋值传入数据集变量,如:
- <volist name=":fun('arg')" id="vo">
- {$vo.name}
- </volist>
② <for></for>
用法:
- <for start="开始值" end="结束值" comparison="" step="步进值" name="- </for>
开始值、结束值、步进值和
- <for start="1" end="100">
- {$i}
- </for>
解析后的代码是
- for ($i=1;$i<100;$i+=1){
- echo $i;
- }
③ <foreach></foreach>
foreach标签类似与volist标签,只是更加简单,没有太多额外的属性,例如: {$vo.id}:{$vo.name}
name表示数据源 item表示 name="list" item="vo" >
- {$key}|{$vo.id}:{$vo.name}
- </foreach>
也可以定义索引的变量名
- <foreach name="list" item="vo" key="k" >
- {$k}|{$vo.id}:{$vo.name}
- </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.条件查询

having和where的区别
区别一:
where后面跟的字段必须在数据表中有
having后面跟的字段必须在数据集中有
区别二:
select * from 表 where 条件 group by 分组 having 条件
3.聚合函数

4.数据的添加
通过关联数组的方式添加

5.修改数据

6.删除数据

7.直接执行SQL语句

 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号