ѡ̳

 找回密码
 ע
搜索
查看: 151|回复: 0
打印 上一主题 下一主题

thinkphp公共函数之D函数

[复制链接]

789

主题

1158

帖子

4197

积分

Ա

Rank: 9Rank: 9Rank: 9

积分
4197
跳转到指定楼层
¥
发表于 2017-11-12 18:52:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
源码
  1. /**
  2. * 实例化模型类 格式 [资源://][模块/]模型
  3. * @param string $name 资源地址
  4. * @param string $layer 模型层名称
  5. * @return Think\Model
  6. */
  7. function D($name='',$layer='') {
  8.     if(empty($name)) return new Think\Model;
  9.     static $_model  =   array();
  10.     $layer          =   $layer? : C('DEFAULT_M_LAYER');
  11.     if(isset($_model[$name.$layer]))
  12.         return $_model[$name.$layer];
  13.     $class          =   parse_res_name($name,$layer);
  14.     if(class_exists($class)) {
  15.         $model      =   new $class(basename($name));
  16.     }elseif(false === strpos($name,'/')){
  17.         // 自动加载公共模块下面的模型
  18.         if(!C('APP_USE_NAMESPACE')){
  19.             import('Common/'.$layer.'/'.$class);
  20.         }else{
  21.             $class      =   '\\Common\\'.$layer.'\\'.$name.$layer;
  22.         }
  23.         $model      =   class_exists($class)? new $class($name) : new Think\Model($name);
  24.     }else {
  25.         Think\Log::record('D方法实例化没找到模型类'.$class,Think\Log::NOTICE);
  26.         $model      =   new Think\Model(basename($name));
  27.     }
  28.     $_model[$name.$layer]  =  $model;
  29.     return $model;
  30. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | ע

本版积分规则

QQ|Archiver|ֻ|С|ѡ̳

GMT+8, 2026-5-2 06:07 , Processed in 0.097444 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表
0.1139s