码迷,mamicode.com
首页 > Web开发 > 详细

Thinkphp下实现D函数用于实例化Model格式

时间:2019-07-21 16:41:36      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:mode   tar   set   isset   import   basename   highlight   lod   empty   

   

* D函数用于实例化Model 格式 项目://分组/模块
* @param string $name Model资源地址
* @param string $layer 业务层名称
* @return Model

测试项目地址:http://www.yixingmuban.com/

  

function D($name=‘‘,$layer=‘‘) {
    if(empty($name)) return new Model;
    static $_model  =   array();
    $layer          =   $layer?$layer:C(‘DEFAULT_M_LAYER‘);
    if(strpos($name,‘://‘)) {// 指定项目
        list($app)  =   explode(‘://‘,$name);
        $name       =   str_replace(‘://‘,‘/‘.$layer.‘/‘,$name);
    }else{
        $app        =   C(‘DEFAULT_APP‘);
        $name       =   $app.‘/‘.$layer.‘/‘.$name;
    }
    if(isset($_model[$name]))   return $_model[$name];
    $path           =   explode(‘/‘,$name);
    if($list = C(‘EXTEND_GROUP_LIST‘) && isset($list[$app])){ // 扩展分组
        $baseUrl    =   $list[$app];
        import($path[2].‘/‘.$path[1].‘/‘.$path[3].$layer,$baseUrl);
    }elseif(count($path)>3 && 1 == C(‘APP_GROUP_MODE‘)) { // 独立分组
        $baseUrl    =   $path[0]== ‘@‘ ? dirname(BASE_LIB_PATH) : APP_PATH.‘../‘.$path[0].‘/‘.C(‘APP_GROUP_PATH‘).‘/‘;
        import($path[2].‘/‘.$path[1].‘/‘.$path[3].$layer,$baseUrl);
    }else{
        import($name.$layer);
    } 
    $class          =   basename($name.$layer);
    if(class_exists($class)) {
        $model      =   new $class(basename($name));
    }else {
        $model      =   new Model(basename($name));
    }
    $_model[$name]  =  $model;
    return $model;
}

  

Thinkphp下实现D函数用于实例化Model格式

标签:mode   tar   set   isset   import   basename   highlight   lod   empty   

原文地址:https://www.cnblogs.com/68xi/p/11221388.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!