Ответ 1
Прежде всего, все классы доступны для изучения кода в разделе:
\libraries\legacy\model\
Также важно понимать, что эти классы должны использоваться (в общем случае) в связи с соответствующими контроллерами: JControllerLegacy
, JControllerForm
и JControllerAdmin
.
JModelLegacy
- базовый класс для модели Joomla (модель, как в MVC). Он будет в основном работать как класс Factory путем инициализации объекта драйвера базы данных и объекта таблицы.
Вы можете расширить этот класс, если хотите просто выполнить базовые SQL-запросы (любую работу с JDatabase) и написать другую бизнес-логику.
Все модели будут расширяться JModelLegacy
.
JModelList
- это класс для обработки списков элементов. Он обеспечивает разбиение на страницы и фильтрацию. В основном везде вы показываете список элементов, вы можете использовать JModelList
. Все основные компоненты полагаются на JModelList
.
JModelForm
и JModelAdmin
обычно связаны с формами. Формами могут быть форма регистрации пользователя или создание и редактирование записи. Формы в Joomla определены в файлах XML. JModelForm загрузит эти файлы в виде объектов JForm, загрузит данные формы, предварительно обработает форму и проверит ее.
Это один из самых мощных классов, которые вы можете использовать. Они сделают тяжелый подъем. Когда вам не нравится конкретное поведение, вы можете переопределить его, выполнив свой собственный код.
JModelAdmin
добавляет дополнительные функции администратора в форму:
- выполнять пакетные операции над записями.
- проведет ACL проверку записей.
JModelAdmin
обычно используется при редактировании записи или для пакетных операций, особенно в бэкэнд.
JModelItem
- очень маловероятно, что вам это понадобится. Он предоставляет только метод getStoreId()
и два свойства. Вам не понадобится этот класс, если только в качестве именования, вместо использования JModelLegacy
вы хотите расширить его, когда делаете что-то основное, например, показывая запись. (мое личное понимание вещей).
Вывод: Выше приведено общее введение в эти классы, как я их вижу. Мое предложение - детально изучить, как Joomla использует их, какие методы раскрываются и как их использовать. Они очень мощные классы, и особенно для операций CRUD они помогут вам справиться с тяжелым подъемом. После того, как вы поймете, что они делают, вы можете использовать их и переопределить их при необходимости.