Magento 2 é Model View, View Model System e não MVC – Explicado

Publicados: 2017-10-04

O lançamento do Magento 2 mudou drasticamente a forma como os desenvolvedores planejam e escrevem código para um site. A Magento está fornecendo uma plataforma de comércio eletrônico impecável para milhares de comerciantes em todo o mundo para que seus produtos sejam facilmente transportados para um público mais amplo. O Magento 2 está alinhado com a notável arquitetura que os comerciantes estão usando há muito tempo.

Por exemplo, as principais plataformas de comércio eletrônico, como GlassesUSA.com, de onde você pode comprar óculos online, estão usando o Magento. De acordo com a equipe da GlassesUSA, a Magento tornou seu site facilmente escalável para atender a diversos requisitos de negócios, que estão evoluindo a cada dia. Com a dinâmica do mercado em constante mudança e a base cada vez maior de clientes, a adoção do Magento tem sido uma das decisões mais vitais. Isso teve uma influência positiva e reduziu o tempo de inatividade para manutenção do site para quase zero. Eles simplesmente precisam adicionar ou modificar um módulo para refletir a mudança desejada em seu site, sem prejudicar a continuidade dos negócios ou a experiência do usuário

O projeto arquitetônico do Magento foi criado por desenvolvedores que disponibilizam um tipo de código fonte que pode ser facilmente customizado para necessidades específicas do negócio. É a beleza da arquitetura que permite que desenvolvedores e comerciantes adicionem módulos e estendam a funcionalidade de um tema Magento eCommerce.

A maioria das plataformas requer modificação do código principal para personalizar o produto final, mas o Magento está muito além dos problemas comuns. A adição de uma opção ou funcionalidade é facilitada com a instalação de plugins Magento. Por exemplo, se você precisar adicionar trechos estruturados às suas páginas de produtos, uma simples instalação da extensão de trechos ricos do Magento ou um aplicativo semelhante pode fazer o trabalho. Não há necessidade de alterar o código e injetar as informações adicionais do produto separadamente em cada página de destino.

O design arquitetônico beneficia os vendedores e administradores de sites de comércio eletrônico para personalizar, atualizar e adicionar facilmente novos recursos. Vamos discutir alguns dos modelos arquitetônicos antes de comentar sobre o make do Magento.

Post relacionado: Como editar e excluir pedidos no Magento 2

Modelo MVC (Model View Controller)

MVC é uma aplicação de design que divide o acesso de dados através do modelo, diferencia o front end com a view, a lógica de negócio através de um controller. Esse padrão de projeto foi introduzido na década de 1970 para separar a interface do usuário do modelo. Com a incorporação do MVC, fica mais fácil reparar, manter e testar uma aplicação. O tema central do padrão de projeto é a divisão de um aplicativo em três aspectos arquiteturais que incluem o modelo, a visualização e o controlador.

O modelo simboliza a lógica de negócios de um aplicativo por meio de um conjunto de classes. Pode ser um modelo de dados ou um modelo de negócios. Um modelo também mostra como os dados são modificados, alterados ou manipulados.

A visualização é a interface do usuário ou o front-end de um aplicativo. Isso inclui componentes de interface do usuário como jQuery, CSS, HTML, etc. Ele mostra os dados que obtém do controlador do aplicativo como uma informação de resultado. View replica o modelo com uma interface de usuário.

O controlador é responsável por processar as solicitações que um aplicativo recebe do front-end. Ele busca informações dos usuários finais por meio de View, processa os dados por meio de Model e depois os transcende de volta para o front end (view). Funciona como uma ponte entre o modelo e a vista.

Post sugerido: Como enviar uma extensão do Magento 2 para o mercado?

Sistema ViewModel (MVVM) do Model View

MVVM é um padrão de arquitetura utilizado em programação e desenvolvimento de software. O sistema funciona em um mecanismo de vinculação de dados bidirecional que está entre View e ViewModel. Isso simplifica a automatização das alterações no ViewModel para exibi-lo na View.

O MVVM tem o Model e o View, assim como eles estão presentes no MVC, mas os controllers são substituídos pelo ViewModel.

O Magento 2 é um sistema MVVM ou MVC?

Magento 2 é um sistema ViewModel Model View e não mais um design estruturado por MVC. O modelo MVC foi incorporado na versão anterior e parece ser bem parecido com o MVVM, mas o MVVM é muito mais rico em dividir a View e Model em uma aplicação.

O MVVM possui três camadas que incluem Model, View e ViewModel. A lógica de negócios de uma extensão ou aplicativo é representada como Model, enquanto o front-end é representado pela View. Assim como os controladores servem como mediadores em um modelo MVC, o ViewModel preenche a lacuna entre o modelo e a visualização em um sistema MVVM.

Diz-se que uma extensão desenvolvida para Magento 2 consiste nos elementos básicos de design discutidos acima. Considerando que, o papel dos controladores não é totalmente removido do Magento 2, pois é responsável por gerenciar o fluxo do usuário que inclui comunicar ao sistema sobre as solicitações dos usuários.

Deixe-me explicar o mesmo com a ajuda de um exemplo. A título de exemplo, você pode tentar configurar um novo URL e criar um modelo phtml para ele. Quando você solicita uma nova URL no Magento 2, como http://magento.abc.com/hi/friend, o sistema MVVM enviará a solicitação a um controlador para processá-la da mesma forma que é feito no MVC. Mas, há uma grande diferença na responsabilidade do controlador no MVVM. É responsabilizado por

  • Determinando o layout da página para selecionar
  • Gerenciando para preservar os dados das solicitações do usuário
  • E, ou comunicar o sistema para responder com HTTP, ou
  • Direcione os usuários para a página seguinte ou anterior

A configuração de um URL de exemplo ajudará você a perceber que nem uma única variável é mencionada na Visualização porque cada componente da Visualização é responsável por derivar dados ou informações da camada de modelo, objeto ou fonte externa. O MVVM faz com que o Magento divida uma página HTML em várias seções que são chamadas de contêineres. Esses contêineres possuem blocos que são conectados por meio de uma estrutura em forma de árvore. Os blocos incluem ainda um arquivo de modelo phtml.

O objeto de bloco Magento serve como um ViewModel se você falar especificamente sobre o sistema MVVM. O bloco de objetos é capaz de escanear e ler os modelos de negócios, solicitações de usuários, adquirir dados de sistema externo, etc. o arquivo de modelo é denominado como View que colabora exclusivamente com o objeto de bloco que é o View Model

Conclusão

Magento 2 tomou a decisão de mudar para o sistema Model View ViewModel, pois era uma necessidade do momento. O modelo MVVM dá um passo à frente no particionamento da lógica do modelo da lógica de negócios. O sistema é certamente especulado para facilitar os comerciantes e os usuários finais, enquanto os desenvolvedores podem achar difícil inicialmente lidar com a codificação de uma extensão para um site que é alimentado por Magento 2 e o sistema MVVM.