Magento 2 es Model View, View Model System y no MVC – Explicación
Publicado: 2017-10-04El lanzamiento de Magento 2 ha cambiado drásticamente la forma en que los desarrolladores planifican y escriben código para un sitio web. Magento proporciona una plataforma de comercio electrónico impecable a miles de comerciantes de todo el mundo para que puedan vender fácilmente sus productos a un público más amplio. Magento 2 está en línea con la notable arquitectura que los comerciantes están utilizando desde hace mucho tiempo.
Por ejemplo, las principales plataformas de comercio electrónico como GlassesUSA.com, desde donde puede comprar gafas en línea, utilizan Magento. Según el equipo de GlassesUSA, Magento ha hecho que su sitio web sea fácilmente escalable para adaptarse a los diversos requisitos comerciales, que evolucionan todos los días. Con la dinámica cambiante del mercado y la base de clientes cada vez mayor, adoptar Magento ha sido una de las decisiones más vitales. Esto ha tenido una influencia positiva y ha reducido el tiempo de inactividad para el mantenimiento del sitio web a casi cero. Simplemente necesitan agregar o modificar un módulo para reflejar el cambio deseado en su sitio web, sin obstaculizar la continuidad del negocio o la experiencia del usuario.
El diseño arquitectónico de Magento fue creado por desarrolladores que ponen a disposición un tipo de código fuente que se puede personalizar fácilmente según las necesidades específicas de la empresa. Es la belleza de la arquitectura lo que permite a los desarrolladores y comerciantes agregar módulos y ampliar la funcionalidad de un tema de comercio electrónico de Magento.
La mayoría de las plataformas requiere la modificación del código central para personalizar el producto final, pero Magento va mucho más allá de los problemas comunes. La adición de una opción o funcionalidad se facilita con la instalación de complementos de Magento. Por ejemplo, si necesita agregar fragmentos estructurados a las páginas de sus productos, una simple instalación de la extensión de fragmentos enriquecidos de Magento o una aplicación similar puede hacer el trabajo. No es necesario modificar el código e inyectar la información adicional del producto por separado en cada página de destino.
El diseño arquitectónico beneficia a los vendedores y administradores de sitios web de comercio electrónico para personalizar, actualizar y agregar nuevas funciones fácilmente. Discutamos algunos de los modelos arquitectónicos antes de comentar sobre la marca de Magento.
Publicación relacionada: Cómo editar y eliminar pedidos en Magento 2
Modelo MVC (controlador de vista de modelo)
MVC es una aplicación de diseño que divide el acceso de datos a través del modelo, diferencia el front-end con la vista, la lógica de negocios a través de un controlador. Este patrón de diseño se introdujo en la década de 1970 para separar la interfaz de usuario del modelo. Como resultado de la incorporación de MVC, se vuelve más fácil reparar, mantener y probar una aplicación. El tema central del patrón de diseño es la división de una aplicación en tres aspectos arquitectónicos que incluyen el modelo, la vista y el controlador.
El modelo simboliza la lógica de negocio de una aplicación a través de un conjunto de clases. Puede ser un modelo de datos o un modelo de negocio. Un modelo también muestra la forma en que se modifican, cambian o manipulan los datos.
La vista es la interfaz de usuario o el front-end de una aplicación. Esto incluye componentes de la interfaz de usuario como jQuery, CSS, HTML, etc. Muestra los datos que obtiene del controlador de la aplicación como información de resultado. Ver replica el modelo con una interfaz de usuario.
El controlador es responsable de procesar las solicitudes que recibe una aplicación desde el front-end. Obtiene información de los usuarios finales a través de View, procesa los datos a través de Model y luego los trasciende de nuevo al front-end (view). Funciona como un puente entre el modelo y la vista.

Publicación sugerida: ¿Cómo enviar una extensión de Magento 2 al mercado?
Modelo Vista ViewModel (MVVM) Sistema
MVVM es un patrón arquitectónico utilizado en programación y desarrollo de software. El sistema funciona con un mecanismo de enlace de datos bidireccional que se encuentra entre View y ViewModel. Esto simplifica la automatización de los cambios dentro del ViewModel para mostrarlo en la Vista.
MVVM tiene el modelo y la vista, al igual que estos están presentes en MVC, pero los controladores se reemplazan con ViewModel.
¿Es Magento 2 un sistema MVVM o MVC?
Magento 2 es un sistema Model View ViewModel y ya no es un diseño estructurado por MVC. El modelo MVC se incorporó en la versión anterior y parece ser bastante similar a MVVM, pero MVVM es mucho más rico en dividir la Vista y el Modelo en una aplicación.
MVVM tiene tres capas que incluyen Model, View y ViewModel. La lógica empresarial de una extensión o aplicación se representa como Modelo, mientras que el front-end se representa mediante la Vista. Al igual que los controladores funcionan como mediadores en un modelo MVC, ViewModel cierra la brecha entre el modelo y la vista en un sistema MVVM.
Se dice que una extensión desarrollada para Magento 2 consta de los elementos de diseño básicos que se discutieron anteriormente. Considerando que, el papel de los controladores no se elimina por completo de Magento 2, ya que se hace responsable de administrar el flujo de usuarios que incluye comunicar al sistema sobre las solicitudes de los usuarios.
Permítanme explicar lo mismo con la ayuda de un ejemplo. Por el bien de un ejemplo, puede intentar configurar una nueva URL y crear una plantilla phtml para ella. Cuando solicita una nueva URL en Magento 2, como http://magento.abc.com/hi/friend, el sistema MVVM enviará la solicitud a un controlador para que la procese tal como se hace en MVC. Pero, hay una gran diferencia en la responsabilidad del controlador en MVVM. Se hace responsable de
- Determinar el diseño de página para seleccionar
- Gestión para preservar los datos de las solicitudes de los usuarios.
- Y comunique al sistema para que responda con HTTP, o
- Dirigir a los usuarios a la página anterior o siguiente
La configuración de una URL de ejemplo lo ayudará a notar que no se menciona una sola variable en la Vista porque cada componente de la Vista es responsable de derivar datos o información de la capa del modelo, el objeto o una fuente externa. El MVVM hace que Magento divida una página HTML en varias secciones que se denominan contenedores. Estos contenedores poseen bloques que están conectados a través de una estructura en forma de árbol. Los bloques incluyen además un archivo de plantilla phtml.
El objeto de bloque Magento sirve como ViewModel si habla específicamente sobre el sistema MVVM. El bloque de objetos es capaz de escanear y leer los modelos comerciales, las solicitudes de los usuarios, adquirir datos de un sistema externo, etc. El archivo de plantilla se denomina Vista y solo colabora con el objeto de bloque que es el modelo de vista.
Conclusión
Magento 2 tomó la decisión correcta de pasar al sistema Model View ViewModel, ya que era una necesidad del momento. El modelo MVVM va un paso adelante en la partición de la lógica de la plantilla de la lógica empresarial. Seguramente se especula que el sistema facilitará a los comerciantes y a los usuarios finales, mientras que a los desarrolladores les puede resultar difícil inicialmente hacer frente a la codificación de una extensión para un sitio web que funciona con Magento 2 y el sistema MVVM.