目录
您可能感兴趣的文章
首页 后端开发 php教程 Thinkphp 内部函数 ADSLCFUI 快捷方法全解析_PHP教程

Thinkphp 内部函数 ADSLCFUI 快捷方法全解析_PHP教程

Jul 13, 2016 am 10:31 AM
thinkphp 快捷方法

ThinkPHP为一些常用的操作定义了快捷方法,这些方法具有单字母的方法名,具有比较容易记忆的特点。非常有意思的是,这些快捷方法的字母包含了ADSL字母,所以我们称之为ADSL方法。A、D、S、L、C、F、U、I 这几个快捷方法都在 /THINKPHP/Common/functions.php 这个文件中,下面我分别说明一下他们各自的功能和用法。

A() 加载Action类
D() 加载Model类
S() 全局缓存配置
L() 获取语言定义
C() 获取配置值
F() 快速文件数据读取和保存 针对简单类型数据 字符串、数组
U() 用于完成对URL地址的组装
I() 快速创建一个对象实例

1.A 快速创建Action对象

$action=new UserAction();// 等同于以下写法:$action=A("User");而且,如果当前的UserAction类还没有引入的话,A方法会自动引入。并且具有单例模式的支持,不会重复创建相同的Action对象。

A方法支持跨项目调用,例如:
 
$action=A("User",'Admin'); //实例化Admin项目的UserAction类

2.D 快速创建模型数据对象
 
先定义好模型类,如UserModel,然后就可以用D()函数对数据进行操作了。例如:
 
先在"你的项目"/Lib/Model下建立一个名为UserModel.class.php的PHP脚本,内容如下:
 
class UserModel extends Model{}

然后,无需增加任何属性和方法,就可以进行如下操作:
 
$User=D("User"); //实例化User对象,User是你在数据库建立的一个名为"前缀_user"的数据表,也可以用$User=new UserModel()代替,进行实例化对象的操作。实例化之后,就可以对数据进行增删查改等一系列操作了,如:
 
$User->find(1); //查找主键为1的记录

我们在做用户金币或者是积分或者是投票的时候,需要对指定的字段自加1这时候我可以可以这样写

$User->score='(score+1)';$s->save(); 这样我们会省下许多的步骤。

如果要修改指定的一个字段更可以简写为如下:

D('User')->setField('name','hehe','id=2');

D 方法和 M 方法的区别主要在于:

M方法不需要创建模型类文件,M方法不会读取模型类,所以默认情况下自动验证是无效的,但是可以通过动态赋值的方式实现;而D方法必须有创建模型类,我们可以用下面两种方法去创建一个数据表的映射对象。

第一种:$Test=D('Test');

第二种:$Test=new Model('Test');

虽然这两种都可以对数据进行select,insert,delete,udpate操作,在数据验证上有很大的不同,用第一种方式实例一个模型就会有数据检查功能,例如可以定义如果 title 没有填写的话就会提示 “请输入标题” (这个是tp提供的一个自动验证功能,当然也需要在相应的 model 中定义好验证条件);

D方法可以自动检测模型类,不存在时他会抛出一个异常。同时对于已实例化得得模型不会再去重复实例化(单例)。默认的D方法只能支持调用当前的项目(或者叫做应用)下的模型。例如:

$user=new UserModel();

等价于$user=D('user');

如果实例化的是一个空模型,例如:

$Demo=new Model();

那么它等价于:

$Demo=M();
 
3.S 快速操作缓存方法
 
ThinkPHP把各种缓存方式都抽象成统一的缓存类来调用,而且ThinkPHP把所有的缓存机制统一成一个S方法来进行操作,所以在使用不同的缓存方式的时候并不需要关注具体的缓存细节。如:

S('data',$Data); //使用data标识缓存$Data数据
S('data',$Data,3600); //缓存$Data数据3600秒
$Data=S('data'); //获取缓存数据
S('name',null); // 删除缓存标识name
 
4.L 快速操作语言变量

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

L('USER_INFO','用户信息'); //设置名称为USER_INFO 的语言变量
L('USER_INFO'); //获取USER_INFO的语言变量值
//批量赋值
$array['USER_INFO']='用户信息';$array['ERROR_INFO']='错误信息';
L($array);

5.C 快速操作配置变量,用法就是 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');  

6. F 文件数据保存方法

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

7. U 用于完成对URL地址的组装,特点在于可以自动根据当前的URL模式和设置生成对应的URL地址

该函数格式为:U('地址','参数','伪静态','是否跳转','显示域名');在模板中使用U方法而不是固定写死URL地址的好处在于,一旦你的环境变化或者参数设置改变,你不需要更改模板中的任何代码。在模板中的调用格式需要采用 {:U('地址', '参数'…)} 的方式。

U方法的用法示例:

U('User/add') // 生成User模块的add操作地址

也可以支持分组调用:

U('Home/User/add') // 生成Home分组的User模块的add操作地址

当然,也可以只是写操作名,表示调用当前模块的

U('add') // 生成当前访问模块的add操作地址

除了分组、模块和操作名之外,我们也可以传入一些参数:

U('Blog/read?id=1') // 生成Blog模块的read操作 并且id为1的URL地址

U方法的第二个参数支持传入参数,支持数组和字符串两种定义方式,如果只是字符串方式的参数可以在第一个参数中定义,下面几种方式都是等效的:

U('Blog/cate',array('cate_id'=>1,'status'=>1))
U('Blog/cate','cate_id=1&status=1')
U('Blog/cate?cate_id=1&status=1')

您可能感兴趣的文章

  • PHP中的字符串处理函数(String Functions) 全总结
  • PHP 生成连续的数字(字母)数组函数range()分析,PHP抽奖程序函数
  • thinkphp 的 Action 控制器中的系统常量总结
  • php中在变量和函数前加static关键字之后的区别
  • PHP filter_var() 函数 Filter 函数
  • PHP压缩html网页代码减小网络数据传输量,清除空格,制表符,注释标记
  • thinkphp自动验证与自动填充无效的解决办法
  • 在php中分别使用curl的post提交数据的方法和get获取网页数据的方法总结

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/764160.htmlTechArticleThinkPHP为一些常用的操作定义了快捷方法,这些方法具有单字母的方法名,具有比较容易记忆的特点。非常有意思的是,这些快捷方法的字...
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

thinkphp项目怎么运行 thinkphp项目怎么运行 Apr 09, 2024 pm 05:33 PM

运行 ThinkPHP 项目需要:安装 Composer;使用 Composer 创建项目;进入项目目录,执行 php bin/console serve;访问 http://localhost:8000 查看欢迎页面。

thinkphp有几个版本 thinkphp有几个版本 Apr 09, 2024 pm 06:09 PM

ThinkPHP 拥有多个版本,针对不同 PHP 版本而设计。主要版本包括 3.2、5.0、5.1 和 6.0,而次要版本用于修复 bug 和提供新功能。当前最新稳定版本为 ThinkPHP 6.0.16。在选择版本时,需考虑 PHP 版本、功能需求和社区支持。建议使用最新稳定版本以获得最佳性能和支持。

thinkphp怎么运行 thinkphp怎么运行 Apr 09, 2024 pm 05:39 PM

ThinkPHP Framework 的本地运行步骤:下载并解压 ThinkPHP Framework 到本地目录。创建虚拟主机(可选),指向 ThinkPHP 根目录。配置数据库连接参数。启动 Web 服务器。初始化 ThinkPHP 应用程序。访问 ThinkPHP 应用程序 URL 运行。

thinkphp怎么安装 thinkphp怎么安装 Apr 09, 2024 pm 05:42 PM

ThinkPHP 安装步骤:准备 PHP、Composer、MySQL 环境。使用 Composer 创建项目。安装 ThinkPHP 框架及依赖项。配置数据库连接。生成应用代码。启动应用并访问 http://localhost:8000。

laravel和thinkphp哪个好 laravel和thinkphp哪个好 Apr 09, 2024 pm 03:18 PM

Laravel 和 ThinkPHP 框架的性能比较:ThinkPHP 性能通常优于 Laravel,专注于优化和缓存。Laravel 性能良好,但对于复杂应用程序,ThinkPHP 可能更适合。

开发建议:如何利用ThinkPHP框架实现异步任务 开发建议:如何利用ThinkPHP框架实现异步任务 Nov 22, 2023 pm 12:01 PM

《开发建议:如何利用ThinkPHP框架实现异步任务》随着互联网技术的迅猛发展,Web应用程序对于处理大量并发请求和复杂业务逻辑的需求也越来越高。为了提高系统的性能和用户体验,开发人员常常会考虑利用异步任务来执行一些耗时操作,比如发送邮件、处理文件上传、生成报表等。在PHP领域,ThinkPHP框架作为一款流行的开发框架,提供了一些便捷的方式来实现异步任务。

thinkphp性能怎么样 thinkphp性能怎么样 Apr 09, 2024 pm 05:24 PM

ThinkPHP 是一款高性能的 PHP 框架,具备缓存机制、代码优化、并行处理和数据库优化等优势。官方性能测试显示,它每秒可处理超过 10,000 个请求,实际应用中被广泛用于京东商城、携程网等大型网站和企业系统。

ThinkPHP6后台管理系统开发:实现后台功能 ThinkPHP6后台管理系统开发:实现后台功能 Aug 27, 2023 am 11:55 AM

ThinkPHP6后台管理系统开发:实现后台功能简介:随着互联网技术和市场需求的不断发展,越来越多的企业和组织需要一个高效、安全、灵活的后台管理系统来管理业务数据和进行运营管理。本文将使用ThinkPHP6框架,通过实例演示如何开发一个简单但实用的后台管理系统,包括权限控制、数据增删改查等基本功能。环境准备在开始之前,我们需要安装好PHP、MySQL、Com

See all articles