%16 %112 %2014 %09:%七 %AM

再谈JModel

作者
给本项目评分
(0 得票数)

本节详细的学习一个Joomla的JModel。目标是知道JModel到底为我们提供了哪些可用的方法。以便在以后的代码中进行调用。

 

描述

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的功能。并且略有加强。基本上还是保存着向后的兼容性。
阅读 3720 次数