D、F、S、C、L、A、I 他们都在functions.php这个文件家
下面我分别说明一下他们的功能
D() 加载Model类
M() 加载Model类
A() 加载Action类
L() 获取语言定义
C() 获取配置值 用法就是 C("这里填写在配置文件里数组的下标")
S() 全局缓存配置 用法S(“这里相当于一个唯一的标识”)
F() 快速文件数据读取和保存 针对简单类型数据 字符串、数组
I() 快速创建一个对象实例
以上如果有遗漏的 内部函数
ThinkPHP值得大家学习的源码,特别是他们的中文注释让我们很容易就了解他源码中的内容
在用thinkphp做程序时经常能用到的内部函数,对于换成这一块用S()比较会减轻对数据库的负担!
在thinkphp中出了有内部还是,thinkphp还把配置文件保存为静态变量,在模板里方便快速调用
如果{$Thinkphp.config.参数名称}
如果主键是自动增长的,用add()的时候他会自动的返回一个插入新记录的ID值
我们在做用户金币或者是积分或者是投票的时候,需要对指定的字段自加1这时候我可以可以这样写
$s= D('admin');$s->score='(score+1)';$s->save(); 这样我们会剩下许多的步骤。
如果要修改指定的一个字段用简单的办法 D('admin')->setField('name','hehe','id=2');
D方法用于快速创建模型对象的实例,并且单例化,例如:
$User = D("User");
等效为
$User = new UserModel();
m实例化参数是数据库的表名.
d实例化的是你自己在model文件夹下面建立的模型文件.
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();