目錄
您可能感兴趣的文章
首頁 php教程 php手册 Thinkphp 内部函数 ADSLCFUI 快捷方法全解析

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

Jun 13, 2016 am 09:36 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获取网页数据的方法总结
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++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 運行。

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:42 PM

ThinkPHP 安裝步驟:準備 PHP、Composer、MySQL 環境。使用 Composer 建立專案。安裝 ThinkPHP 框架及相依性。配置資料庫連線。產生應用程式碼。啟動應用程式並造訪 http://localhost:8000。

thinkphp效能怎麼樣 thinkphp效能怎麼樣 Apr 09, 2024 pm 05:24 PM

ThinkPHP 是一款高效能的 PHP 框架,具備快取機制、程式碼最佳化、平行處理和資料庫最佳化等優勢。官方性能測試顯示,它每秒可處理超過 10,000 個請求,實際應用中被廣泛用於京東商城、攜程網等大型網站和企業系統。

開發建議:如何利用ThinkPHP框架進行API開發 開發建議:如何利用ThinkPHP框架進行API開發 Nov 22, 2023 pm 05:18 PM

開發建議:如何利用ThinkPHP框架進行API開發隨著網際網路的不斷發展,API(ApplicationProgrammingInterface)的重要性也日益凸顯。 API是不同應用程式之間進行通訊的橋樑,它可以實現資料共享、功能呼叫等操作,為開發者提供了相對簡單且快速的開發方式。而ThinkPHP框架作為一款優秀的PHP開發框架,具有高效能、可擴展且易用

See all articles