* 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格式的更多相关文章

  1. thinkphp 前台html调用函数 格式化输出

    仅仅是输出变量并不能满足模板输出的需要,内置模板引擎支持对模板变量使用调节器和格式化功能,其实也就是提供函数支持,并支持多个函数同时使用.用于模板标签的函数可以是PHP内置函数或者是用户自定义函数,和 ...

  2. PHP.TP框架下商品项目的优化3-php封装下拉框函数

    php封装下拉框函数 因为在项目中会经常使用到下拉框,所以根据一个表中的数据制作下拉框函数,以便调用 //使用一个表的数据做下拉框函数 function buildSelect($tableName, ...

  3. (thinkPHP)PHP常用函数大全

    usleep() 函数延迟代码执行若干微秒.unpack() 函数从二进制字符串对数据进行解包.uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID.time_sleep_until() ...

  4. Delphi下的RTTI函数大全

    http://ljz9425.blog.163.com/blog/static/369148572008111635253858/ Delphi下的RTTI(下) 2008-12-16 15:52:5 ...

  5. Linux下getsockopt/setsockopt 函数说明

    [ getsockopt/setsockopt系统调用 功能描述:  获取或者设置与某个套接字关联的选 项.选项可能存在于多层协议中,它们总会出现在最上面的套接字层.当操作套接字选项时,选项位于的层和 ...

  6. c++ 网络编程(八) LINUX-epoll/windows-IOCP下 socket opoll函数用法 优于select方法的epoll 以及windows下IOCP 解决多进程服务端创建进程资源浪费问题

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9622548.html 锲子:关于并发服务器中的I/O复用实现方式,前面在网络编程系列四还是五来 ...

  7. UA判断打开页面的环境,然后在callBack写相应环境下的回调函数

    这是js代码 /* * 2016.11.10 * SunJingxin * V 1.0.0 * */ (function(){ /* * 使用方法: * 一.引入ua.js * 二.直接调用 Mobi ...

  8. C++ 链式继承下的虚函数列表

    目录 1.虚函数列表的位置 2.虚函数列表的内容 3.链式继承中虚函数列表的内容   注: 虚函数列表 又称为虚表, vtbl , 指向它的指针称为vptr, vs2019中称为__vfptr 操作系 ...

  9. STL下<algorithm>下的reverse函数

    定义: reverse用于C++中,对给定区间所有元素进行排序,是一种反向函数,不具备排序功能.sort函数包含在头文件为#include<algorithm>的C++标准库中. 语法: ...

随机推荐

  1. ifcopenshell在VS2015下的编译

    源起 今天使用 IfcOpenShell的IfcConvert ,因为是开源的所以就想自己编译下,编译过程中遇到不少问题,因此记录下来 什么是IfcOpenShell? IfcOpenShell是一个 ...

  2. QQ自动强制加好友代码html

    鲜为人知的QQ自动强制加好友代码 是的,你也许见过强行聊天的代码: tencent://Message/?Uin=574201314&websiteName=www.oicqzone.com& ...

  3. 关于jQuery请求后台成功一直走error回调函数问题

    如果dataType声明与响应不符就会进入error回调.就算接口请求成功,也是走error回调函数.

  4. 解决 plsql 启动报错 Initialization error

    由于文件  oci.dll   路径没添加  1.点击edit 2.点击PL/SQL 3.弹框中 填写oci.dll文件的完整路径!完整路径!完整路径!完整路径!完整路径!完整路径!完整路径!完整路径 ...

  5. 自动化办公:xlsxwriter操作Excel

    转载原链接:https://www.jianshu.com/p/d685cfaaeef7 1.安装 pip install xlsxwriter 2.操作一个简单的Excel文档 # 引入依赖模块 i ...

  6. SQlL Server ----- 通过年月进行查询

    websit  中的代码. 不修改 对控件进行修改,展示年月 WdatePicker({ dateFmt: 'yyyy-MM', isShowToday: false, isShowClear: fa ...

  7. phpmyadmin 显示被隐藏的表

    点击后,会把这个表隐藏掉.有时候误点会莫名其妙. 点击数据库上的眼睛,能够显示被隐藏的表.

  8. QQ联合登录(基于Oauth2.0协议)

    1. 获取授权码Authorization Code https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id= ...

  9. [转帖](区块链补习班)ERC20很多人都听过,但ERC是什么你真的了解吗?

    (区块链补习班)ERC20很多人都听过,但ERC是什么你真的了解吗? http://baijiahao.baidu.com/s?id=1600948969290990883&wfr=spide ...

  10. Python之虚拟环境virtualenv、pipreqs生成项目依赖第三方包

    virtualenv简介 含义: virtual:虚拟,env:environment环境的简写,所以virtualenv就是虚拟环境,顾名思义,就是虚拟出来的一个新环境,比如我们使用的虚拟机.doc ...