时间:2021-07-01 10:21:17 帮助过:2人阅读
/**
* 模型实例化入口
*
* @param string $model_name 模型名称
* @return obj 对象形式的返回结果
*/
function Model($model = null){
static $_cache = array();
if (!is_null($model) && isset($_cache[$model])) return $_cache[$model];
$file_name = BASE_DATA_PATH.'/model/'.$model.'.model.php';
$class_name = $model.'Model';
if (!file_exists($file_name)){
return $_cache[$model] = new Model($model);
}else{
require_once($file_name);
if (!class_exists($class_name)){
$error = 'Model Error: Class '.$class_name.' is not exists!';
throw_exception($error);
}else{
return $_cache[$model] = new $class_name();
}
}
}
/**
* 模型实例化入口
*
* @param string $model_name 模型名称
* @return obj 对象形式的返回结果
*/
function Model($model = null){
//存储已经实例化的model的数组 model名字为key 实例化为value
static $_cache = array();
//如果在cache存储中存在 则直接返回对应的存储实例
if (!is_null($model) && isset($_cache[$model])) return $_cache[$model];
//model存储的文件路径 model需要按照 xxxxx.model.php
$file_name = BASE_DATA_PATH.'/model/'.$model.'.model.php';
//model的类型需要是 xxxxModel
$class_name = $model.'Model';
if (!file_exists($file_name)){
//如果文件不存在(类不存在) 实例化一个Model的对象
return $_cache[$model] = new Model($model);
}else{
//如果文件存在(类存在) 则包含进来
require_once($file_name);
//判断类是否存在 不存在抛出异常
if (!class_exists($class_name)){
$error = 'Model Error: Class '.$class_name.' is not exists!';
throw_exception($error);
}else{
//存在则实例化 放在cache里边 并返回
return $_cache[$model] = new $class_name();
}
}
}