Magento 2 — это Model View, View Model System, а не MVC — объяснение

Опубликовано: 2017-10-04

Выпуск Magento 2 радикально изменил то, как разработчики планируют и пишут код для веб-сайта. Magento предоставляет безупречную платформу электронной коммерции тысячам продавцов по всему миру, чтобы они могли легко предлагать свои продукты более широкой аудитории. Magento 2 соответствует замечательной архитектуре, которую давно используют продавцы.

Например, ведущие платформы электронной коммерции, такие как GlassesUSA.com, где вы можете приобрести очки в Интернете, используют Magento. По словам команды GlassesUSA, Magento сделала свой веб-сайт легко масштабируемым для удовлетворения разнообразных бизнес-требований, которые меняются каждый день. В условиях меняющейся динамики рынка и постоянно расширяющейся клиентской базы переход на Magento был одним из самых важных решений. Это оказало положительное влияние и сократило их время простоя для обслуживания веб-сайта практически до нуля. Им просто нужно добавить или изменить модуль, чтобы отразить желаемое изменение на своем веб-сайте, не нарушая непрерывности бизнеса или взаимодействия с пользователем.

Архитектурный проект Magento был создан разработчиками, которые предоставили исходный код, который можно легко настроить в соответствии с конкретными потребностями бизнеса. Именно красота архитектуры позволяет разработчикам и продавцам добавлять модули и расширять функциональность темы электронной коммерции Magento.

Большинство платформ требуют модификации основного кода для персонализации конечного продукта, но Magento выходит далеко за рамки обычных проблем. Добавление опции или функциональности упрощается благодаря установке плагинов Magento. Например, если вам нужно добавить структурированные сниппеты на страницы вашего продукта, простая установка расширения расширенных сниппетов Magento или аналогичного приложения может сделать эту работу. Нет необходимости изменять код и вводить дополнительную информацию о продукте отдельно на каждую целевую страницу.

Архитектурный дизайн позволяет продавцам и администраторам веб-сайтов электронной коммерции легко настраивать, обновлять и добавлять новые функции. Давайте обсудим некоторые архитектурные модели, прежде чем комментировать марку Magento.

Связанный пост: Как редактировать и удалять порядок в Magento 2

Модель MVC (контроллер представления модели)

MVC — это проектное приложение, которое разделяет доступ к данным через модель, различает внешний интерфейс с представлением, бизнес-логику через контроллер. Этот шаблон проектирования был введен в 1970-х годах для отделения пользовательского интерфейса от модели. В результате включения MVC становится проще ремонтировать, поддерживать и тестировать приложение. Основной темой шаблона проектирования является разделение приложения на три архитектурных аспекта, включая модель, представление и контроллер.

Модель символизирует бизнес-логику приложения через набор классов. Это может быть либо модель данных, либо бизнес-модель. Модель также показывает, как данные модифицируются, изменяются или манипулируются.

Представление — это пользовательский интерфейс или внешний интерфейс приложения. Это включает в себя компоненты пользовательского интерфейса, такие как jQuery, CSS, HTML и т. д. Он показывает данные, которые он получает от контроллера приложения, как информацию о результате. Представление воспроизводит модель с пользовательским интерфейсом.

Контроллер отвечает за обработку запросов, которые приложение получает от внешнего интерфейса. Он получает информацию от конечных пользователей через представление, обрабатывает данные через модель, а затем передает их обратно во внешний интерфейс (представление). Он работает как мост между моделью и представлением.

Предлагаемая запись: Как разместить расширение Magento 2 на рынке?

Представление модели Система ViewModel (MVVM)

MVVM — это архитектурный шаблон, используемый в программировании и разработке программного обеспечения. Система работает на двустороннем механизме привязки данных между View и ViewModel. Это упрощает автоматизацию изменений в ViewModel для их отображения в представлении.

MVVM имеет Model и View, точно так же, как они присутствуют в MVC, но контроллеры заменены на ViewModel.

Является ли Magento 2 системой MVVM или MVC?

Magento 2 — это модель ViewModel System, а не дизайн, структурированный MVC. Модель MVC была включена в предыдущую версию и, кажется, очень похожа на MVVM, но MVVM намного лучше разделяет Представление и Модель в приложении.

MVVM имеет три уровня, которые включают Model, View и ViewModel. Бизнес-логика расширения или приложения представлена ​​в виде модели, тогда как внешний интерфейс представлен в виде представления. Точно так же, как контроллеры служат посредником в модели MVC, ViewModel устраняет разрыв между моделью и представлением в системе MVVM.

Говорят, что расширение, разработанное для Magento 2, состоит из основных элементов дизайна, которые обсуждались выше. Принимая во внимание, что роль контроллеров не полностью удалена из Magento 2, поскольку на них возложена ответственность за управление пользовательским потоком, который включает в себя передачу системе информации о запросах пользователей.

Позвольте мне объяснить то же самое с помощью примера. В качестве примера вы можете попробовать настроить новый URL-адрес и создать для него шаблон phtml. Когда вы запрашиваете новый URL-адрес в Magento 2, например http://magento.abc.com/hi/friend, система MVVM отправит запрос контроллеру для его обработки так же, как это делается в MVC. Но есть большая разница в ответственности контроллера в MVVM. Он несет ответственность за

  • Определение макета страницы для выбора
  • Управление защитой данных от запросов пользователей
  • И либо сообщите системе, чтобы она ответила с помощью HTTP, либо
  • Направлять пользователей на следующую или предыдущую страницу

Настройка примера URL-адреса поможет вам заметить, что ни одна переменная не упоминается в представлении, поскольку каждый компонент представления несет ответственность за получение данных или информации из уровня модели, объекта или внешнего источника. MVVM заставляет Magento разделить HTML-страницу на несколько разделов, которые называются контейнерами. Эти контейнеры содержат блоки, которые связаны через древовидную структуру. Блоки также включают файл шаблона phtml.

Объект блока Magento служит ViewModel, если вы говорите конкретно о системе MVVM. Блок объекта способен сканировать и читать бизнес-модели, запросы пользователей, получать данные из внешней системы и т. д. файл шаблона называется представлением, которое взаимодействует исключительно с блочным объектом, который является моделью представления.

Вывод

Magento 2 правильно принял решение о переходе на систему Model View ViewModel, поскольку это было необходимо. Модель MVVM делает шаг вперед в отделении логики шаблона от бизнес-логики. Система, безусловно, предназначена для облегчения работы продавцов и конечных пользователей, в то время как разработчикам может быть сложно поначалу справиться с кодированием расширения для веб-сайта, работающего на Magento 2 и системе MVVM.