这篇博文我们讲述模型类文件Model.php,大家一看这个文件名肯定也会觉得非常熟悉,同样的这个Model,就是我们通常所说的MVC中的M。这个文件就是我们在开发项目过程中开发模型时所有的模型类都要继承自这个文件。
Model类的代码也非常少,有用的方法就下面这一个,下面这个方法是为了在Model里面可以像控制器那么通过$this->做很多事情。例如想在model里面加载某个library,就可以$this->load->library(xxx),其实它都是盗用controller的。
此类文件中的代码没有什么可解析的,我们直接查看模型类文件Model.php的源代码(注释版)即可明白此类代码所实现的方法功能:
<?php
/**
* =======================================
* Created by Pocket Knife Technology.
* User: ZhiHua_W
* Date: 2016/10/28 0501
* Time: 上午 8:41
* Project: CodeIgniter框架—源码分析
* Power: Analysis for Model.php
* =======================================
*/
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* 模型类
* Model几乎没什么代码,可用的就一个函数,巧妙的通过魔术方法__get()获取CI超级控制器
* 于是,在Model中,你可以像controller一样做很多事情,$this->load->model/library/helper/uri......
*/
class CI_Model
{
/**
* 构造函数
*/
public function __construct()
{
log_message('info', 'Model Class Initialized');
}
/**
* __get()
* Model类的代码也非常少,有用的方法就下面这一个,
* 下面这个方法是为了在Model里面可以像控制器那么通过$this->做很多事情。
* 例如想在model里面加载某个library,就可以$this->load->library(xxx),
* 其实它都是盗用controller的。
*/
public function __get($key)
{
return get_instance()->$key;
}
}