Thinkphp 内部函数 ADSLCFI 转载

时间:2022-09-06 14:17:44
Thinkphp 内部函数 ADSLCFI

ThinkPHP为一些常用的操作定义了快捷方法,这些方法具有单字母的方法名,具有比较容易记忆的特点。非常有意思的是,这些快捷方法的字母包含了ADSL字母,所以我们称之为ADSL方法 ---引自Thinkphp
首先A、D、S、L、C、F、I   他们都在 /THINKPHP/Common/functions.php 这个文件中
下面我分别说明一下他们的功能
A() 加载Action类
D() 加载Model类
S()全局缓存配置
L() 获取语言定义
C() 获取配置值
F()快速文件数据读取和保存 针对简单类型数据 字符串、数组
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的记录
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(‘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方法,所以只能支持简单数据类型,不支持对象的缓存。