ThinkPHP开发框架函数详解:D方法

D方法

D方法应该是用的比较多的方法了,用于实例化自定义模型类,是ThinkPHP框架对Model类实例化的一种封装,并实现了单例模式,支持跨项目和分组调用,调用格式如下:
D('[项目://][分组/]模型','模型层名称')
方法的返回值是实例化的模型对象。

D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会实例化Model基类,同时对于已实例化过的模型,不会重复去实例化。
D方法最常用的用法就是实例化当前项目的某个自定义模型,例如:

//&">nbsp;实例化User模型 $User = D('User');

会导入当前项目下面的Lib/Model/UserModel.class.php文件,然后实例化UserModel类,所以,实际上的代码可能和下面的等效:

import('@.Model.UserModel'); $User = new UserModel();

但是如果使用D方法的话,如果这个UserModel类不存在,则会自动调用

new Model('User');

并且第二次调用的时候无需再次实例化,可以减少一定的对象实例化开销。
D方法可以支持跨分组和项目实例化模型,例如:

//实例化Admin项目的User模型 D('Admin://User')//实例化Admin分组的User模型 D('Admin/User')

注意:要实现跨项目调用模型的话,必须确保两个项目的目录结构是并列的。

3.1版本开始,由于增加了分层模型的支持,所以D方法也可以实例化其他的模型,例如:

// 实例化UserService类 $User = D('User','Service');// 实例化UserLogic类 $User = D('User','Logic');D('User','Service');

会导入Lib/Service/UserService.class.php,并实例化,等效于下面的代码:

import('@.Service.UserService'); $User = new UserSerivce();

时间: 2024-09-16 04:12:59

ThinkPHP开发框架函数详解:D方法的相关文章

ThinkPHP开发框架函数详解:C方法_php技巧

C方法是ThinkPHP用于设置.获取,以及保存配置参数的方法,使用频率较高. 了解C方法需要首先了解下ThinkPHP的配置,因为C方法的所有操作都是围绕配置相关的.ThinkPHP的配置文件采用PHP数组格式定义. 由于采用了函数重载设计,所以用法较多,我们来一一说明下. 设置参数 C('DB_NAME','thinkphp'); 表示设置DB_NAME配置参数的值为thinkphp,由于配置参数不区分大小写,所以下面的写法也是一样: C('db_name','thinkphp'); 但是建

ThinkPHP开发框架函数详解:field方法的用法总结

ThinkPHP的连贯操作方法中field方法有很多的使用技巧,field方法主要目的是标识要返回或者操作的字段,下面详细道来. 1.用于查询 在查询操作中field方法是使用最频繁的. $Model->field('id,title,content')->select(); 这里使用field方法指定了查询的结果集中包含id,title,content三个字段的值.执行的SQL相当于: SELECT&http://www.aliyun.com/zixun/aggregation/37

ThinkPHP开发框架函数详解:C方法

C方法是ThinkPHP用于设置.获取,以及保存配置参数的方法,使用频率较高.了解C方法需要首先了解下ThinkPHP的配置,因为C方法的所有操作都是围绕配置相关的.ThinkPHP的配置文件采用PHP数组格式定义.由于采用了函数重载设计,所以用法较多,我们来一一说明下.设置参数 C('DB_NAME','thinkphp'); 表示设置DB_NAME配置参数的值为thinkphp,由于配置参数不区分大小写,所以下面的写法也是一样: C('db_http://www.aliyun.com/zix

ThinkPHP开发框架函数详解:cookie方法

cookie函数也是一个多元化操作函数,完成cookie的设置.获取和删除操作. Cookie 用于http://www.aliyun.com/zixun/aggregation/12583.html">Cookie 设置.获取.删除操作 用法 cookie($name, $value='', $option=null) 参数 name(必须):要操作的cookie变量 value(可选):要设置的cookie值 option(可选):传入的cookie设置参数,默 认为空 返回值 见详(

ThinkPHP开发框架函数详解:session方法

Session方法用于http://www.aliyun.com/zixun/aggregation/16962.html">Session 设置.获取.删除和管理操作. Session 用于Session 设置.获取.删除和管理操作 用法 session($name, $value='') 参数 name(必须):如果传入数组 则表示进行session初始化,如果传入null表示清空当前session,如果是字符串则表示session赋值.获取或者操作. Value(可选):要设置的se

ThinkPHP开发框架函数详解:M方法

M方法用于实例化一个基础模型类,和D方法的区别在于:1.不需要自定义模型类,减少IO加载,性能较好:2.实例化后只能调用基础模型类(默认是Model类)中的方法:3.可以在实例化的时候指定表前缀.数据库和数据库的连接信息:D方法的强大则体现在你封装的自定义模型类有多强,不过随着新版ThinkPHP框架的基础模型类的功能越来越强大,M方法也比D方法越来越实用了.M方法的调用格式:M('[基础模型名:]模型名','6184.html">数据表前缀','数据库连接信息') 我们来看下M方法具体有

ThinkPHP开发框架函数详解:U方法

U方法用于完成对URL地址的组装,特点在于可以自动根据当前的URL模式和设置生成对应的URL地址,格式为:U('地址','参数','伪静态','是否跳转','显示域名'); 在模板中使用U方法而不是固定写死URL地址的好处在于,一旦你的环境变化或者参数设置改变,你不需要更改模板中的任何代码.在模板中的调用格式需要采用 {:U('地址', '参数'-)} 的方式U方法的用法示例: U('User/add')&http://www.aliyun.com/zixun/aggregation/37954

ThinkPHP开发框架函数详解:cache方法

cache方法是3.0版本开始新增的缓存管理方法. cache 用于缓存设置. 获取.删除操作 用法 cache($http://www.aliyun.com/zixun/aggregation/11696.html">name, $value='',$expire=0) 参数 name(必须):如果传入数组 则表示进行缓存初始化,如果是字符串则表示缓存赋值.获取或者删除操作. Value(可选):要设置的缓存值,如果传入null表示删除缓存,默 认为空字符串. expire(可选):要设

ThinkPHP开发框架函数详解:import方法

import方法是ThinkPHP框架用于类库导入的封装实现,尤其对于项目类库.扩展类库和第三方类库的导入支持,import方法早期的版本可以和java的import方法一样导入目录和通配符导入,后来考虑到性能问题,在后续的版本更新中不断改进和简化了,所以现在的用法比较简单明了.调用格式:import('类库名', '起始路径', '类库后缀') imprt方法有一个别名vendor方法,专门用于导入第三方类库,区别在于起始路径和类库后缀默认值不同.我们来分析下具体的用法: 导入系统基类库 系统