当前位置:首页 >> 编程语言 >> 【ThinkPHP】实例化模型的方法,淘宝会员登录

【ThinkPHP】实例化模型的方法,淘宝会员登录

cpugpu芯片开发光刻机 编程语言 4
文件名:【ThinkPHP】实例化模型的方法,淘宝会员登录 【ThinkPHP】实例化模型的方法

欢迎大家访问我自己架的博客站点 码厩技术博客!

1、实例化一个Model

function D($name='', $app='') { static $_model = array(); if (empty($name)) return new Model; if (empty($app)) $app = C('DEFAULT_APP'); if (isset($_model[$app . $name])) return $_model[$app . $name]; $OriClassName = $name; if (strpos($name, '.')) {        // 确认Model类文件名是不是aaa.bbb.ccc结构 $array = explode('.', $name); $name = array_pop($array); // 对于类似aaa.bbb.ccc结构文件名的Model类,只取到第一节 $className = $name . 'Model'; import($app . '.Model.' . implode('.', $array) . '.' . $className); } else { $className = $name . 'Model'; import($app . '.Model.' . $className); } if (class_exists($className)) { $model = new $className(); } else { $model = new Model($name); } $_model[$app . $OriClassName] = $model; return $model;}

2、实例化一个没有模型文件的Model

function M($name='', $class='Model') { static $_model = array(); if (!isset($_model[$name . '_' . $class])) $_model[$name . '_' . $class] = new $class($name); return $_model[$name . '_' . $class];}

3、Model类构造函数public function __construct($name='',$connection='') { // 模型初始化 $this->_initialize(); // 获取模型名称 if(!empty($name)) { $this->name = $name; }elseif(empty($this->name)){ $this->name = $this->getModelName(); } // 数据库初始化操作 // 获取数据库操作对象 // 当前模型有独立的数据库连接信息 $this->db(0,empty($this->connection)?$connection:$this->connection); // 设置表前缀 $this->tablePrefix = $this->tablePrefix?$this->tablePrefix:C('DB_PREFIX'); $this->tableSuffix = $this->tableSuffix?$this->tableSuffix:C('DB_SUFFIX'); // 字段检测 if(!empty($this->name) && $this->autoCheckFields) $this->_checkTableInfo();}

总结:

避免重复加载一个模型,即,为了对同一个模型只实例化一次,两种方法中都使用了静态数组变量做实例化记录。 D方法的返回结果有三种:name为空则返回空模型实例;已经实例化就返回实例;载入相应模型文件并返回实例。其中载入模型返回实例的具体操作分为两步:第一步,根据参数确认模型文件目录并载入模型文件。第二步,判断类是否已经存在,即是否加载成功,也就是说模型文件是否存在规定目录,然后使用加载模型文件或模型基类实例化模型,最后返回实例。 M方法就是返回一个已经存在的实例或者返回一个新的(Model或者其他模型类)实例。

转载于:https://www.cnblogs.com/catroll/archive/2011/11/23/model_of_thinkphp.html

协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2026年1月    »
1234
567891011
12131415161718
19202122232425
262728293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接