zoukankan      html  css  js  c++  java
  • 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;
    }
    

      

  • 相关阅读:
    SQL获取当天0点0分0秒和23点59分59秒方法
    全球唯一标识符 System.Guid.NewGuid().ToString()
    Js获取当前日期时间及其它操作
    MySQL日期函数与日期转换格式化函数大全
    访问者模式
    享元模式
    中介者模式
    职责链模式
    命令模式
    桥接模式
  • 原文地址:https://www.cnblogs.com/68xi/p/11221388.html
Copyright © 2011-2022 走看看