入口文件:index.php
目录结构:
一、application //应用程序目录php
config //配置文件目录css
controllers //控制器目录ajax
admin //后台控制器目录数据库
home //前台控制器目录数组
models //数据库模型目录缓存
views //视图目录安全
admin
home
二、framework //框架目录
core //框架核心类
databases //数据库驱动类
helpers //辅助函数目录
libraries //类库目录
三、public //前台静态资源目录
css
images
js
uploads //文件上传目录app
四、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_DELIM
和TMPL_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);
优点:
缓存
数据缓存
// 设置缓存 // 缓存数据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