Модели в 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'), которая позволяет опустить создание экземпляра класса модели.

 

Recent Posts

Ошо

Уже поздно возвращаться назад, чтобы все правильно начать, но еще не поздно устремиться вперед, чтобы… Read More

23/05/2021

Шпаргалка по временным формам глагола в английском языке

В английском языке очень сложная система времен (временные формы глагола – Verb Tenses), которая относится… Read More

17/05/2021

Теория цвета – советы для вдохновения веб-дизайнерам

Вы когда-нибудь задумывались о том, как веб-дизайнеры подбирают идеальное сочетание цветов? Интересовались тем, какие цвета… Read More

30/04/2021

Как стать фрилансером – действенные советы

Фриланс – это возможность спокойно и размеренно работать дома, не обращая внимания на окружающее пространство,… Read More

27/04/2021

Самые красивые каньоны со всего мира (часть 1/2)

На протяжении многих сотен тысяч, или даже миллионов лет, быстрое течение рек подтачивало и вымывало… Read More

27/04/2021

Уильям Шекспир

Грехи других судить вы так усердно рветесь, начните со своих и до чужих не доберетесь… Read More

18/04/2021