Magento вже деякий час є найбільшою у світі eCommerce платформою, яка має відкритий код. Саме гнучкість коду – одна з найбільших переваг, завдяки якій безліч трейдерів звертається до даної платформи. Реліз Magento 2 відбувся в кінці 2015 року, вона дозволяє вирішити найрізноманітніші завдання будь-якого рівня складності. На відміну від першої версії платформи, друга отримала значні покращення, а саме:
- вдосконалений і зручніший back-end і front-end інтерфейс;
- збільшення продуктивності;
- мінімізована можливість конфліктів між модулями однакової функціональності;
- локалізація файлів кожного модуля в одному місці;
- вдосконалена система шаблонів забезпечує багаторівневу ієрархію;
- поліпшення якості коду і мінімізація можливості появи помилок завдяки інтеграції корисних паттернів проектування в код;
- повносторінкове кешування;
- підтримка PHP 7.
За кілька років активного використання платформи, кожен розробник зазначив, що Magento 2 є більш потужним програмним продуктом, ніж попередній, а вивчення нової версії більш захопливе.
Архітектура Magento 2
Головна мета проектування Magento 2 – зробити вихідний код максимально гнучким і модульним, кастомізувати (змінити поведінку коду) і адаптувати його під потреби будь-якого проекту. У eCommerce платформі користувачем можуть відслідковуватися поновлення ядра, а також застосовуватися, не викликаючи зміну кастомізованого коду.
Magento 2 є Model View ViewModel (MVVM) системою, що підтримує жорсткіший поділ між відображенням і моделлю, в порівнянні зі своїм архітектурним родичем Model View Controller (MVC).
Шари архітектури MVVM:
- за бізнес логіку відповідає шар Model, і залежить від асоційованого класу – моделі ресурсів (ResourceModel) – який відповідає за підключення до бази даних. Моделі покладаються на service contracts, щоб показати їх функціональність іншим шарам додатку.
- за те, що користувач бачить на екрані, – Html сторінки, відповідає шар View. В Magento 2 ці функції виконують phtml файли, локалізовані в модулях. Phtml файли прив’язуються до ViewModel всередині Layout XML файлів і називаються сполучними. Layout файли також можуть оголошувати javascript файли, які використовуються на кінцевій сторінці.
- Шар ViewModel взаємодіє з шаром Model, і передає шару відображення (View) тільки необхідну інформацію. У даній eCommerce платформі виконання цих функцій покладено на клас Block, який розташовується в кожному модулі, де вся необхідна функціональність має бути реалізована. За цю частину в архітектурі MVC відповідає Controller. У MVVM controller регулює потік здійснення запитів користувача і відображає необхідні сторінки або перенаправляє на інші.
Підводячи підсумок, слід зазначити, що всередині окремих модулів Magento 2 є велика кількість функціональних розширень, таких як хелпери (що використовуються в модулі функції, які не є семантичною частиною бізнес логіки), переклади до модулю (файли з налаштуванням багатомовності додатку), тести, UI компоненти і багато іншого. Також варто згадати і про кращі практики front-end розробки на Magento 2. Для прискорення процесу розробки інтернет-магазинів, розробник “не вигадуючи велосипед”, просто використовує один зі стандартних шаблонів, який має готовий набір всіх сторінок інтернет-магазину, що істотно прискорює процес розробки веб-сайту.
коментарів