thinkphp学习笔记.docx

上传人:b****5 文档编号:8202949 上传时间:2023-01-29 格式:DOCX 页数:9 大小:19.78KB
下载 相关 举报
thinkphp学习笔记.docx_第1页
第1页 / 共9页
thinkphp学习笔记.docx_第2页
第2页 / 共9页
thinkphp学习笔记.docx_第3页
第3页 / 共9页
thinkphp学习笔记.docx_第4页
第4页 / 共9页
thinkphp学习笔记.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

thinkphp学习笔记.docx

《thinkphp学习笔记.docx》由会员分享,可在线阅读,更多相关《thinkphp学习笔记.docx(9页珍藏版)》请在冰豆网上搜索。

thinkphp学习笔记.docx

thinkphp学习笔记

1.A快速创建Action对象

$action = new UserAction();//等同于以下写法:

$action = A("User");  

而且,如果当前的UserAction类还没有引入的话,A方法会自动引入。

并且具有单例模式的支持,不会重复创建相同的Action对象。

A方法支持跨项目调用,例如:

$action = A("User",'Admin');//实例化Admin项目的UserAction类

 

再例如我们的程序有2个Action分别是IndexAction和TestAction,在IndexAction中有个myHello方法能够输出helloworld,如果我也想在TestAction中也输出同样一段文字怎么办?

最原始的方法首先我们导入IndexAction.class.php这个文件,然后newIndexAction,最后调用myHello方法才行。

代码一般为:

PHP代码

1.

php  

2.import("@.Action.Index");  

3.//导入本项目目录下Action目录下的Index.class.php文件。

  

4.class TestAction extends Action{  

5.    public function index()  

6.    {  

7.        $index=new IndexAction();//实例化IndexAction  

8.        echo $index->myHello();//调用myHello()方法  

9.    }  

10.}  

11.?

>  

那么,如果我们用A函数,怎么写呢?

PHP代码

1.

php  

2.class TestAction extends Action{  

3.    public function index()  

4.    {  

5.        $index=A("Index");  

6.        echo $index->myHello();  

7.    }  

8.}  

9.?

>  

呵呵,少写很多代码吧。

当然,这还不是最偷懒的方法,请看下边的R()函数,就知道什么是偷懒的极致了。

来源:

(-Thinkphp 单字母内部函数 ADSLCFI_lynne_新浪博客

2:

B函数

  这是随着行为应运而生的新生函数,可以执行某个行为,例如B('app_begin');就是在项目开始之前,执行这个行为定义的所有函数,支持2个参数,第二个参数支持需要接受一个数组,例如B('app_begin',array("name"=>"tdweb","time"=>time()));这样。

3:

C函数

    获取配置值,这个大家用的应该不少。

虽然使用方便,但是C函数无疑是一个非常强大的函数。

获取值:

获取所有设置:

C();不传递任何参数,返回一个包含所有设置的数组。

获取指定配置:

C('URL_MODEL')这样就能得到URL_MODEL的配置信息

获取指定二维数组配置:

C("array.name"),这样就返回数组array下的key为name所对应的值

设置值:

为二维数组赋值C("array.name","value"),原理同上(获取array.name的值),后边的value是值面向

批量赋值:

$test=array("URL_MODEL"=>1,"THIN_MODEL"=>true");

C($test);

这样直接将数组里的值赋值了

判断是否赋值:

C("?

URL_MODEL")这样前边加个"?

",如果已经赋值,则返回true

需要说明的是,这里虽然更改了配置的值,但是仅仅是这个页面做了更改,到下个页面就不起作用了,如果想改就永久更改,那么需要配合F函数,将配置文件写入config.php才行。

4:

D快速创建模型数据对象

先定义好模型类,如UserModel,然后就可以用D()函数对数据进行操作了。

例如:

先在"你的项目"\Lib\Model下建立一个名为UserModel.class.php的PHP脚本,内容如下:

classUserModelextendsModel{}

然后,无需增加任何属性和方法,就可以进行如下操作:

$User=D("User");//实例化User对象,User是你在数据库建立的一个名为"前缀_user"的数据表

也可以用$User=newUserModel()代替,进行实例化对象的操作。

实例化之后,就可以对数据进行增删查改等一系列操作了,如:

$User->find

(1);//查找主键为1的记录

5.S快速操作缓存方法

ThinkPHP把各种缓存方式都抽象成统一的缓存类来调用,而且ThinkPHP把所有的缓存机制统一成一个S方法来进行操作,所以在使用

不同的缓存方式的时候并不需要关注具体的缓存细节。

如:

S('data',$Data);//使用data标识缓存$Data数据

S('data',$Data,3600);//缓存$Data数据3600秒

$Data=S('data');//获取缓存数据

S('name',null);// 删除缓存标识name

6.L快速操作语言变量

L方法提供了多语言的支持,可以快速设置和获取语言定义。

L(‘USER_INFO’,’用户信息’);//设置名称为USER_INFO 的语言变量

L(‘USER_INFO’);  // 获取USER_INFO的语言变量值

//批量赋值

$array[‘USER_INFO’] = ‘用户信息’;

$array[‘ERROR_INFO’] = ‘错误信息’;

L($array);

7.C快速操作配置变量

C(‘USER_AUTH_ON’,true);    //设置名称为USER_AUTH_ON 的配置参数

C(‘USER_AUTH_ON’); //获取USER_AUTH_ON的变量值

同L一样,C也支持批量赋值

注意:

配置参数不区分大小写

 

此外从1.5版本开始,C方法还支持二维数组的操作

C('USER.USER_TYPE',1);

C('USER.USER_AUTH_ON');  

8.F文件数据保存方法

F方法主要用于项目的文件数据的写入、更改和删除,其工作机理和S方法是类似的,区别在于用途不同,数据保存的目录也不同,而且不能指定缓存方式,因为默认就是文件形式保存数据。

F方法使用了var_export方法,所以只能支持简单数据类型,不支持对象的缓存

 

9:

R函数

还记得我们的A函数吧,如果仅仅想执行某个方法,其实用R函数更方便,刚才的可以替换成PHP代码

1.

php  

2.class TestAction extends Action{  

3.    public function index()  

4.    {  

5.        $index=R("Index","myHello");  

6.        echo $index;  

7.    }  

8.}  

9.?

>  

Thinkphp验证机制

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">

ThinkPHP示例:</p><p>表单提交、自动验证和自动填充

标题:

23px"class="largebLeft">

邮箱:

23px"class="largebLeft">

内容:

验证码:

23px"class="small">输入对应的数字


1pxdottedsilver">{$vo.title}

gray">[{$vo.email}{$vo.create_time|date='Y-m-dH:

i:

s',###}]

{$vo.content|nl2br}

form类:

程序代码

php

classFormModelextendsModel{

//自动验证设置

protected$_validate=array(//这里必须定义为$_validata用来验证

array('title','require','标题必须!

',1),

array('email','email','邮箱格式错误!

',2),

array('content','require','内容必须'),

array('verify','require','验证码必须!

'),

array('verify','CheckVerify','验证码错误',0,'callback'),//callback使用方法验证,前面定义的验证规则是一个当前Model类的方法,这里可能有些不太理解

//那就要看本类的最后一个方法了,现在明白了吧

array('title','','标题已经存在',0,'unique','add'),//附加验证unique,unique验证是否唯一,系统会根据字段目前的值查询数据库来判断是否存在相同的值

);

/*think的验证机制,省去了不少麻烦非空:

equire邮箱:

email验证码正确:

CheckVerify

array()数组内容array(验证字段,验证规则,错误提示,验证条件,附加规则,验证时间)

验证条件

EXISTS_TO_VAILIDATE或者0存在字段就验证(默认)

MUST_TO_VALIDATE或者1必须验证

VALUE_TO_VAILIDATE或者2值不为空的时候验证

附加规则配合验证规则使用,包括:

function使用函数验证,前面定义的验证规则是一个函数名

callback使用方法验证,前面定义的验证规则是一个当前Model类的方法

confirm验证表单中的两个字段是否相同,前面定义的验证规则是一个字段名

equal验证是否等于某个值,该值由前面的验证规则定义

in验证是否在某个范围内,前面定义的验证规则必须是一个数组

unique验证是否唯一,系统会根据字段目前的值查询数据库来判断是否存在相同的值

regex使用正则进行验证,表示前面定义的验证规则是一个正则表达式(默认)

*/

//自动填充设置

//由上面推导,下面这个是自动填充字段了,方便明了

protected$_auto=array(//同样这里必须定义为$_auto

array('status','1','ADD'),

array('create_time','time','ADD','function'),//这里指明填充使用函数time()

);

/*

数组因子:

array(填充字段,填充内容,填充条件,附加规则)

填充条件包括:

ADD新增数据的时候处理(默认方式)

Update更新数据的时候处理

ALL所有情况下都进行处理

附加规则包括:

function使用函数

callback回调方法

field用其它字段填充

string字符串(默认方式)

*/

publicfunctionCheckVerify(){

returnmd5($_POST['verify'])==$_SESSION['verify'];

}

}

?

>

indexaction类:

程序代码

php

classIndexActionextendsAction{

//首页

publicfunctionindex(){

$Form=D("Form");//创建一个对象

$list=$Form->top6('','*','iddesc');//从数据库中读取最新6条记录,并且安id倒序输出

$this->assign('list',$list);//把数据传到模板里

$this->display();

}

//处理表单数据

publicfunctioninsert(){//此方法对应表单的ACTION="__URL__/insert"

$Form=D("Form");

if($Form->create()){//创建Form数据对象,默认通过表单提交的数据进行创建,为下面写入数据库做准备

$Form->add();//新增表单提交的数据,吧上面创建的数据对象提交

$this->redirect();//返回上一个模块,页面跳转可以说是

}else{

header("Content-Type:

text/html;charset=utf-8");

exit($Form->getError().'[

history.back()">返回]');

}

}

//生成验证码

//这个方法没什么好说的,固定格式

publicfunctionverify(){

import("ORG.Util.Image");

Image:

:

buildImageVerify();//这里两个冒号是调用静态方法

}

}

?

>

心得:

从think对表单提交过来的数据处理来看,是我以前想都不敢想的简单,数据的验证更是方便

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1