2014-04-07 78 views
1

我正在爲Joomla 3開發一個組件,但我不明白如何在joomla 3中使用數據模型。我是否應該使用Legacy-classes?這些不會在一段時間後棄用嗎?如何在Joomla 3中使用JModel

我看到大部分joomla組件都使用擴展JModelLegacy的類JModelList。要加載這樣的類,我可以使用

JModelLegacy::getInstance('classname'); 

但有沒有辦法做到這一點,而無需使用傳統的類?我認爲,遺產這個詞意味着代碼已經取代了更新/更好/更熱的東西?如果有人知道更好的請賜教...

PS:我也問對的Joomla這個問題 - 論壇,但沒有得到回覆(http://forum.joomla.org/viewtopic.php?f=706&t=837707

問候喬納斯

+0

您可以使用,取決於您。我喜歡新課程,但並不是所有的課程都在舊課程中,儘管希望我們很快就會有這些課程。我有一些我在回購中寫的。 https://github.com/elinw/joomla-cms/tree/checkin-cache-plugins-tags指定的組件是示例(以及com_config),子類位於cms庫中。因人而異。還有一些教程。 – Elin

回答

0

我傾向於使用JModelList和JModelForm,因爲這種方式PHP錯誤日誌記錄將在代碼執行過程中通知,如果您的類未能滿足來自任何父類/超類的某些「契約」類責任。

答案取決於你自己,這裏的確沒有「錯誤」的答案。選擇對你最有意義的方法,並與之合作。

**編輯**

您可以隨時加載和實例化一個模型類,像這樣,使用用戶的註冊模型爲例。

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

他在問他的班級應該延續哪個班級。 – Elin

+0

@Elin這是我的錯誤,謝謝你的擡頭! –

+0

嗨,謝謝你們。我在考慮遺留類將在一段時間後被棄用,這就是爲什麼我認爲我不應該使用它們,但非遺留的API似乎非常不完整。 無論如何,謝謝澄清加載模型不在路徑上。我仍然不願意使用joomla API工作...... 關於Jonas – jonasfh