新浦京81707con > 首页 > 基本函数,THINKPHP中D方法调用逻辑层类

原标题:基本函数,THINKPHP中D方法调用逻辑层类

浏览次数:164 时间:2019-10-04

ThinkPHP的D函数十分强有力,日常情况下用D方法最多的状态是实例化自定义模型类,完成数据库相关的操作,不过D方法的效劳远远不仅仅于此,D方法还可用以逻辑层,服务层自定义类的实例化。

ThinkPHP 2010-11-24 10:58:04 阅读288 评论0   字号:大中小 订阅

最近在研讨 TP

调用格式如下:

多个有共同点..都以实例化对象用的..

收获颇丰...

D('[项目://][分组/]模型','模型层名称')

唯独 在采用时 两个却区别样...为何??

后天就从 基本函数 M和D开头

关于D方法的相似用法本文不再描述,正是大面积的D(‘User’)实例化Model下面包车型大巴UserModel.class.php。

先看看代码

高手莫见笑..有窘迫的地点 望一同谈谈

我们在LIB_PATH,也便是和Controller(在此从前版本叫Action),Model文件夹同级的目录建构Logic也许瑟维Sven件夹。

函数M

 

ThinkPHP分层模型逻辑层

view plaincopy to clipboardprint?
function M($name = '', $class = 'Model')  
{  
    static $_model = array();  
    if (!isset($_model[$name . '_' . $class]))  
        //  暗中同意也等于 new Model($name)  
        $_model[$name . '_' . $class] = new $class($name);  
        //再次来到实例化对象  wedding jewelry wholesale
    return $_model[$name . '_' . $class];  

function M($name = '', $class = 'Model')
{
    static $_model = array();
    if (!isset($_model[$name . '_' . $class]))
        //  默认也等于 new Model($name)
        $_model[$name . '_' . $class] = new $class($name);
        //再次回到实例化对象jewelry display
    return $_model[$name . '_' . $class];
}

 

在Logic文件夹中新建文件UserLogic.class.php,作为客户逻辑业务的一个类,那么实例化那几个类的时候,能够用tp自带的D方法,如下:

$_model[$name . '_' . $class] = new $class($name);

多个有同步点..都以实例化对象用的..

D('User','Logic');

暗中同意也正是 new Model($name)

 

如此就调用Logic文件夹下的UserLogic.class.php文件并实例化class UserLogic,专门的学业一点的说法是D方法协理分成模型并实例化自定义类。这里的分支模型指的正是Logic和Service那样的目录。

也正是说  M重临的是Model的对象

不过 在运用时 两个却分裂样...为何??

新萄京娱乐赌场官网,注:分层模型从ThinkPHP 3.1本子最早扶助。

万一$name不为空 那么$name的意义相当于代表数据库的表名(这几个未来说)

 

大家来造访ThinkPHP D方法的源码:

通过一向实例化Model方法(ThinkPHP基类)来动态的实例化三个Model对象,尽管那几个相应的Model文件不设有

先看看代码

/**
 * D函数用于实例化模型类 格式 [资源://][模块/]模型
 * @param string $name 能源地址
 * @param string $layer 模型层名称
 * @return Model
 */
function D($name='',$layer='') {
    if(empty($name)) return new ThinkModel;
    static $_model  =   array();
    $layer          =   $layer? $layer : C('DEFAULT_M_LAYER');
    if(isset($_model[$name.$layer]))
        return $_model[$name.$layer];
    $class          =   parse_res_name($name,$layer);
    if(class_exists($class)) {
        $model      =   new $class(basename($name));
    }elseif(false === strpos($name,'/')){
        // 自动加载公共模块上边包车型地铁模子
        $class      =   '\Common\'.$layer.'\'.$name.$layer;
        $model      =   class_exists($class)? new $class($name) : new ThinkModel($name);
    }else {
        ThinkLog::record('D方法实例化没找到模型类'.$class,ThinkLog::NOTICE);
        $model      =   new ThinkModel(basename($name));
    }
    $_model[$name.$layer]  =  $model;
    return $model;
}

再来看 D方法

函数M

本文由新浦京81707con发布于首页,转载请注明出处:基本函数,THINKPHP中D方法调用逻辑层类

关键词: 新浦京81707con

上一篇:葡京娱乐登录地址Python之文字转图片方法,使用

下一篇:没有了