Sea*_*ean 13 php model-view-controller joomla model joomla3.0
我正试图掌握Joomla(3.x)框架背后的力量.
我注意到有多种类型的模型可以在组件中使用:
JModelAdmin原型管理模型.充当应用程序特定对象的Factory类,并提供许多支持API函数.
JModelLegacyJoomla模型的基类作为特定于应用程序的对象的Factory类,并提供许多支持API函数.
JModelList用于处理项目列表的模型类.充当应用程序特定对象的Factory类,并提供许多支持API函数.
JModelForm原型表单模型.充当应用程序特定对象的Factory类,并提供许多支持API函数.
JModelItem原型项目模型.
我明白这JModelLegacy似乎是基础课.我的模型JModelLegacy默认扩展,但是,我想知道我是否可以使用其他类的好处.
如果有人知道这些模型,我会很感激地解释这些模型类之间的差异,以及您将使用其他模型类的预期方案.
Val*_*spa 28
首先,所有课程都可用于以下代码研究:
\libraries\legacy\model\

同样重要的是要明白,这些类应使用(一般来说)与连接相应的控制器: JControllerLegacy,JControllerForm和JControllerAdmin.
JModelLegacy - 是Joomla模型的基类(模型与MVC一样).它通常通过初始化数据库驱动程序对象和表对象作为Factory类.
如果您只想进行一些基本的SQL查询(使用JDatabase进行任何工作)并编写其他业务逻辑,则可能需要扩展此类.
所有型号都将延伸JModelLegacy.
JModelList - 是一个处理项目列表的类.它提供分页和过滤.基本上,无论您在哪里显示项目列表,都可以使用JModelList.所有核心组件都依赖于JModelList.

JModelForm并且JModelAdmin通常与表格相关联.表格可以是用户注册表格,也可以是创建和编辑记录.Joomla中的表单在XML文件中定义.JModelForm将加载此文件作为JForm对象,将加载表单数据,预处理表单并验证它.
这是您可以使用的最强大的类之一.他们将做繁重的工作.当您不喜欢特定行为时,可以通过实现自己的代码来覆盖它.
JModelAdmin 为表单添加一些额外的管理功能:
JModelAdmin 通常在编辑记录或批处理操作时使用,尤其是在后端.
JModelItem - 你不太可能需要它.它只公开一个方法getStoreId()和两个属性.你不需要这个类,除非作为一个命名的东西,而不是JModelLegacy你在做基本的事情时想要扩展它,比如显示一个记录.(我个人对事物的理解).
结论:正如我所看到的,上面是对这些类的一般性介绍.我的建议是详细研究Joomla如何使用它们,暴露了哪些方法以及如何使用它们.它们是非常强大的类,特别是对于CRUD操作,它们将帮助您完成所有繁重的工作.在了解了它们的作用后,您可以使用它们并在需要时覆盖它们.