加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 沙龙聚会 > 聚会 > 正文

Thinkphp单字母函数使用指南

发布时间:2016-11-27 03:36:17 所属栏目:聚会 来源:站长网
导读:A方法 A方法用于在内部实例化控制器,调用格式:A(‘[项目://][分组/]模块','控制器层名称') 最简单的用法: 复制代码 代码如下: $User = A('User'); 表示实例化当前项目的UserAction控制器(这个控制器对应的文件位于Lib/Action/UserAction.class.),如

A方法

A方法用于在内部实例化控制器,调用格式:A(‘[项目://][分组/]模块','控制器层名称')
最简单的用法:

复制代码 代码如下: $User = A('User');

表示实例化当前项目的UserAction控制器(这个控制器对应的文件位于Lib/Action/UserAction.class.),如果采用了分组模式,并且要实例化另外一个Admin分组的控制器可以用:

复制代码 代码如下:$User = A('Admin/User');

也支持跨项目实例化(项目的目录要保持同级)

复制代码 代码如下:$User = A('Admin://User');

表示实例化Admin项目下面的UserAction控制器
.1版本增加了分层控制器的支持,所以还可以用A方法实例化其他的控制器,例如:

复制代码 代码如下: $User = A('User','Event);

实例化UserEvent控制器(对应的文件位于Lib/Event/UserEvent.class.)。
实例化控制器后,就可以调用该控制器中的方法,不过需要注意的情况是,在跨项目调用的情况下,如果你的操作方法 有针对当前控制器的特殊变量操作,会有一些未知的问题,所以,一般来说,官方建议需要公共调用的控制器层单独开发,不要有太多的依赖关系。

B方法

这是随着行为应运而生的新生函数,可以执行某个行为,例如

复制代码 代码如下:B('app_begin');
就是在项目开始之前,执行这个行为定义的所有函数。支持2个参数,第二个参数支持需要接受一个数组,例如

复制代码 代码如下:B('app_begin',array("name"= gt;"tdweb","time"=gt;time()));

C方法

C方法是Think用于设置、获取,以及保存配置参数的方法,使用频率较高。
了解C方法需要首先了解下Think的配置,因为C方法的所有操作都是围绕配置相关的。Think的配置文件采用数组格式定义。
由于采用了函数重载设计,所以用法较多,我们来一一说明下。
设置参数

复制代码 代码如下:C('DB_NAME','think');
表示设置DB_NAME配置参数的值为think,由于配置参数不区分大小写,所以下面的写法也是一样:

复制代码 代码如下:C('db_name','think');
但是建议保持统一大写的配置定义规范。
项目的所有参数在未生效之前都可以通过该方法动态改变配置,最后设置的值会覆盖前面设置或者惯例配置里面的定义,也可以使用参数配置方法添加新的配置。
支持二级配置参数的设置,例如:

复制代码 代码如下:C('USER.USER_ID',8);
配置参数不建议超过二级。
如果要设置多个参数,可以使用批量设置,例如:

复制代码 代码如下:$config['user_id'] = 1;
$config['user_type'] = 1;
C($config);
如果C方法的第一个参数传入数组,就表示批量赋值,上面的赋值相当于:

复制代码 代码如下:C('USER_ID',1);
C('USER_TYPE',1);
获取参数
要获取设置的参数,可以用:

复制代码 代码如下:$userId = C('USER_ID');
$userType = C('USER_TYPE');
如果USER_ID参数尚未定义过,则返回NULL。
也可以支持获取二级配置参数,例如:

复制代码 代码如下:$userId = C('USER.USER_ID');
如果传入的配置参数为空,表示获取全部的参数:

复制代码 代码如下:$config = C();
保存设置
.1版本增加了一个永久保存设置参数的功能,仅针对批量赋值的情况,例如:

复制代码 代码如下:$config['user_id'] = 1;
$config['user_type'] = 1;
C($config,'name');
在批量设置了config参数后,会连同当前所有的配置参数保存到缓存文件(或者其他配置的缓存方式)。
保存之后,如果要取回保存的参数,可以用

复制代码 代码如下:$config = C('','name');
其中name就是前面保存参数时用的缓存的标识,必须一致才能正确取回保存的参数。取回的参数会和当前的配置参数合并,无需手动合并。

D方法

D方法应该是用的比较多的方法了,用于实例化自定义模型类,是Think框架对Model类实例化的一种封装,并实现了单例模式,支持跨项目和分组调用,调用格式如下:
D(‘[项目://][分组/]模型','模型层名称')
方法的返回值是实例化的模型对象。
D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会实例化Model基类,同时对于已实例化过的模型,不会重复去实例化。
D方法最常用的用法就是实例化当前项目的某个自定义模型,例如:

复制代码 代码如下:// 实例化User模型
$User = D('User');
会导入当前项目下面的Lib/Model/UserModel.class.文件,然后实例化UserModel类,所以,实际上的代码可能和下面的等效:

复制代码 代码如下:import('@.Model.UserModel');
$User = new UserModel();
但是如果使用D方法的话,如果这个UserModel类不存在,则会自动调用

复制代码 代码如下:new Model('User');

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

复制代码 代码如下://实例化Admin项目的User模型
D('Admin://User')
//实例化Admin分组的User模型
D('Admin/User')
注意:要实现跨项目调用模型的话,必须确保两个项目的目录结构是并列的。
.1版本开始,由于增加了分层模型的支持,所以D方法也可以实例化其他的模型,例如:

复制代码 代码如下:// 实例化UserService类
$User = D('User','Service');
// 实例化UserLogic类
$User = D('User','Logic');

复制代码 代码如下:D('User','Service');
会导入Lib/Service/UserService.class.,并实例化,等效于下面的代码:

复制代码 代码如下:import('@.Service.UserService');
$User = new UserSerivce();

F方法

F方法其实是S方法的一个子集功能,仅用于简单数据缓存,并且只能支持文件形式,不支持缓存有效期,因为采用的是返回方式,所以其效率较S方法较高,因此我们也称之为快速缓存方法。

F方法的特点是:
简单数据缓存;
文件形式保存;
采用返回数据方式加载缓存;
支持子目录缓存以及自动创建;
支持删除缓存和批量删除;
写入和读取缓存

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读