Коварная война россии против Украины. Ориентировочные потери врага
(по состоянию на 22.04.2024)
460260
солдат
348
самолетов
325
вертолетов
7236
танков
13904
ББМ
11736
артиллерия
768
ПВО
1046
РСЗО
15812
машин
26
корабли и катера
Модели в Magento – краткий обзор
Опубликовано

Модели в Magento – краткий обзор

Работа с данными в Magento основана на трех принципах: Модели, Ресурсы модели и Коллекции. Модель – это буква «M» в аббревиатуре MVC (Model-View-Controller, Модель-Представление-Контроллер). Модели отвечают за бизнес-логику любого PHP приложения, и это не является исключением для Magento. Поскольку Magento использует архитектурный шаблон MVC, Модели в движке используются для инкапсуляции бизнес-логики (т.е., совокупности правил, принципов и зависимостей поведения объектов). Главной задачей для Модели в Мадженто является обработка данных из базы данных, поскольку она управляет всеми логическими операциями с базой данных.

Все Модели размещаются в папке «Model» модуля. Чтобы использовать модели в Magento, вам нужно указать их в конфигурационном файле вашего модуля (config.xml).

Все модели Magento наследуются от Mage_Core_Model_Abstract. Magento разделяет Модель на две части: непосредственно модели, которые обрабатывают бизнес-логику, и на Ресурсы модели, которые призваны общаться с базой данных. Ресурс модели также имеет два разных типа: Entity и Mysql4.

Модели работают с Ресурсами модели для получения своих данных. Ресурсы модели выполняют  операции с базой данных и потом передают данные самой Модели. Это делается на абстракциях более высокого уровня, поэтому нам не нужно делать это самим. Однако мы должны сообщать Magento, какой Ресурс модели работает с нашей Моделью.

Magento использует шаблон Singleton в форме хранения данных в глобальном реестре. Здесь возникает разница между методами Mage::getModel() и Mage::getSingleton(). Последний метод проверяет, был ли создан экземпляр запрошенного класса, и если это так – возвращает объект из реестра. В противном случае создается экземпляр класса и сохраняется в реестре.

 

 

Ресурс модели Magento

Ресурс модели соединяется с базой данных и выполняет операции CRUD. Он управляет различными соединениями для чтения/записи.

Все Ресурсы модели расширяют класс Mage_Core_Model_Resource_Db_Abstract.

В конфигурационном файле модуля в ноде <resourceModel> указывается информация о Ресурсе модели. Она говорит Magento, где найти префикс класса при использовании фабричного метода Mage::getResourceModel().

Для извлечения Ресурсов модели также можно использовать удобные методы, например, Mage::getResourceModel() и Mage::getResourceSingleton(). И если у вас есть объект модели, его сопутствующий Ресурс модели можно получить с помощью метода Mage::getModel()->getResource().

 

 

Коллекции Модели в Magento:

Когда нам нужны результаты, основанные на разных моделях, тогда нам нужно создать Коллекцию или же использовать существующую Коллекцию. Это дает нам массу удобных методов, упрощая манипулирование сущностями и уменьшая необходимость писать сложные sql запросы. Если модель соотносится со строкой таблицы в качестве объекта, то Коллекция соотносится с набором таких строк.

Если вы указали в файле конфигурации настройки для использования Ресурсов модели, у вас уже есть все необходимое для создания Коллекций. Коллекции следуют соглашению об именовании на основе Ресурсов модели. Конфиг берет название Ресурса модели и добавляет _collection в конец этого названия. Это означает, что имя класса и имя файла должны соответствовать этому соглашению.

Все Коллекции расширяют Mage_Core_Model_Resource_Db_Collection_Abstract.

Для получения коллекции используется метод Mage::getModel()->getCollection(). Однако можно использовать и другую похожую запись Mage::getResourceModel('module/model_collection'), которая позволяет опустить создание экземпляра класса модели.

 

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *