Моделі в 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')
, який дозволяє опустити створення екземпляра класу моделі.
Останні пости
Основні критерії при виборі та купівлі телевізора
В цьому огляді ми зібрали основні поради та критерії щодо придбання телевізора, в одному місці,… Читати далі
На що звернути увагу при виборі ліхтарика на батарейках
Ліхтарик на батарейках здатний допомогти у різних ситуаціях, починаючи від походів і закінчуючи аваріями. При… Читати далі
Всебічний огляд Apple Watch Series 9: у чому його відмінності від інших поколінь
Остання презентація американської компанії продемонструвала декілька різноманітних новинок. Зокрема, у середині вересня 2023 року були… Читати далі
Як утеплити дитину на зиму за допомогою хутряних навушників
Голова та вуха – це ті частини тіла, які найбільше потребують тепла взимку. Особливо для… Читати далі
Як відбувається огляд у проктолога при різних захворюваннях і як до нього підготуватися?
Проктологія спеціалізується на лікуванні різних захворювань ануса та прямої кишки. Такі делікатні проблеми викликають біль… Читати далі
Нюанси розміщення меблів на кухні — на що звернути увагу
Облаштовуючи домашній простір, ми завжди намагаємося зробити його якомога затишнішим та функціональнішим. При цьому у… Читати далі