Підступна війна росії проти України. Орієнтовні втрати ворога
(станом на 06.10.2022)
61330
осіб
264
літаків
225
гелікоптерів
2449
танків
5064
ББМ
1424
артилерія
176
ППО
344
РСЗВ
3854
машин
15
кораблі і катери
Моделі в 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'), який дозволяє опустити створення екземпляра класу моделі.

 

 

 

Напишіть тут свою думку/питання

Ваша пошта не публікуватиметься.