ThinkPHP框架
Posted 痛仰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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语句
以上是关于ThinkPHP框架的主要内容,如果未能解决你的问题,请参考以下文章