描述
JModel是一个虚类,这个类是构成Joomla组件MVC模式中不可缺少的一部分。所有的模型都必须从JModel进行派生,我们通常在模型中处理业务逻辑。
Joomla的MVC模式
MVC是一种很经典的设计模式,主要的作用是将应用程序分割为不同的层。最理想的状态是当你修改一个层的时候,其他层不受影响。
View :视图的作用是将模型的数据传递到模版,并且展示出来。因此视图对象可以访问模型层的数据。joomla通过JView类来实现视图的基本功能的。
Model:模型的作用是存储应用程序的数据,并且包含业务逻辑。joomla通过JModel来实现基本的模型层功能的。
Controlelr:控制器的作用是处理用户的请求,并且实例化模型和视图。joomla通过JController类来实现控制器的基本功能的。
方法
public function __construct($config = array()) 构造函数
public function getDbo() 得到数据库对象
public function getName() 得到模型的名称。这个一般是类名,当然也可以是够走啊函数传递来的参数$config['name']
public function getState($property = null, $default = null) 得到模型状态变量
public function getTable($name = '', $prefix = 'Table', $options = array()) 得到一个Jtable对象,如果不存在就加载
protected function populateState() 自动更新状态变量。这个方法每一个实例只应该调用一次,并且这个方法应该在第一次调用getState方法的时候进行调用
public function setDbo($db) 设置数据的对象
public function setState($property, $value = null)设置模型的状态变量
public static function getInstance($type, $prefix = '', $config = array()) 获得一个模型对象的实例,不存在就创建
public static function addTablePath($path) 增加一个查找表的路径。这个路径将储存在栈中。
public static function addIncludePath($path = '', $prefix = '') 增加一个路径,JModel类搜索模型的时候会搜索这个路径
protected function _getList($query, $limitstart = 0, $limit = 0) 返回执行SQL语句后的结果集。这个结果集以ObjectList的方式返回
protected function _getListCount($query) 返回查询的记录数
J33和J25在代码上还是有一些不同了。J33将JModel做成了接口,而使用JModelLegacy来实现原先JModel的功能。并且略有加强。基本上还是保存着向后的兼容性。