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


       

    * 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;
    }
    

      

  • 相关阅读:
    软件需求分析
    行高line-height 和vertical-align
    python中的集合基础知识
    python中字典常用的函数和用法
    python中字符串常用的函数
    day-75CRM
    day-74CRM
    day73CRM
    day-72Django源码解析
    day-71Django补充
  • 原文地址:https://www.cnblogs.com/68xi/p/11221388.html
Copyright © 2020-2023  润新知