【问题标题】:How to use JModel in Joomla 3如何在 Joomla 3 中使用 JModel
【发布时间】:2014-04-07 13:33:47
【问题描述】:

我正在为 Joomla 3 开发一个组件,但我不明白如何在 joomla 3 中使用数据模型。我应该使用 Legacy-classes 吗?这些不会在一段时间后被弃用吗?

我看到大多数 joomla 组件都使用 JModelList 类,它扩展了 JModelLegacy。要加载这样一个类,我可以使用

JModelLegacy::getInstance('classname');

但是有没有办法在不使用遗留类的情况下做到这一点?我认为遗留这个词意味着代码已经被替换为更新/更好/更热的东西?如果有人知道更好,请赐教...

PS:我也在 Joomla - 论坛上问过这个问题,但没有得到回复 (http://forum.joomla.org/viewtopic.php?f=706&t=837707)

问候乔纳斯

【问题讨论】:

  • 你可以使用任何一个,这取决于你。我喜欢新课程,但并不是所有的子课程都存在于旧课程中,但希望我们很快就会拥有它们。我有一些我在我的回购中写的。 github.com/elinw/joomla-cms/tree/checkin-cache-plugins-tags 命名组件是示例(连同 com_config),子类在 cms 库中。 YMMV。还有一些教程。

标签: joomla joomla2.5 joomla3.0


【解决方案1】:

我倾向于使用 JModelList 和 JModelForm,因为这样,如果您的类未能满足任何父类/超类的某些“合同”类义务,PHP 错误日志将在代码执行期间发出通知。

答案取决于你自己,这里真的没有“错误”的答案。选择对您最有意义的方法并采用它。

** 编辑 **

您始终可以像这样加载和实例化模型类,以用户的注册模型为例。

JLoader::register('UsersModelRegistration', JPATH_ROOT . '/components/com_users/models/registration.php');
$model = new UsersModelRegistration();

【讨论】:

  • 他在问他的课程应该扩展哪个课程。
  • 嗨,谢谢你们。我认为遗留类将在一段时间后被弃用,这就是为什么我认为我不应该使用它们,但不是遗留的 API 似乎非常不完整。无论如何,感谢您对不在路径上加载模型的澄清。我仍然对使用 joomla API 感到不自在...关于 Jonas
  • @jonasfh 没问题,请记住,我曾经和你一样困惑地盯着 Joomla 1.5。除了不断修补之外,没有什么神奇的秘诀。如果您想了解所有 Joomla 编程,我推荐一本很棒的书,称为 Joomla Programming。它是 2.5 的重点,但对于任何有兴趣深入了解 Joomla 编程的人来说仍然非常重要。
猜你喜欢
  • 1970-01-01
  • 2013-08-12
  • 1970-01-01
  • 1970-01-01
  • 2014-10-28
  • 2011-11-07
  • 1970-01-01
  • 2014-05-08
  • 1970-01-01
相关资源
最近更新 更多