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. Для ускорения процесса разработки интернет магазинов, разработчик “не изобретая велосипед”, а просто переопределяет одним из стандартных шаблонов, который имеет готовый набор всех страниц интернет магазина, это существенно ускоряет процесс разработки веб-сайта.
комментариев