Magento 2 to widok modelu, system widoku modelu, a nie MVC – wyjaśnienie
Opublikowany: 2017-10-04Wydanie Magento 2 drastycznie zmieniło sposób, w jaki programiści planują i piszą kod dla strony internetowej. Magento zapewnia bezbłędną platformę eCommerce tysiącom handlowców na całym świecie, aby łatwo udostępniać swoje produkty szerszej publiczności. Magento 2 jest zgodne z niezwykłą architekturą, z której od dawna korzystają kupcy.
Na przykład wiodące platformy e-commerce, takie jak GlassesUSA.com, z których można kupować okulary online, korzystają z Magento. Według zespołu GlassesUSA, Magento sprawiło, że swoją stronę internetową można łatwo skalować, aby odpowiadała zróżnicowanym wymaganiom biznesowym, które zmieniają się każdego dnia. Przy zmieniającej się dynamice rynku i stale powiększającej się bazie klientów, przyjęcie Magento było jedną z najważniejszych decyzji. Miało to pozytywny wpływ i skróciło przestoje związane z utrzymaniem strony internetowej prawie do zera. Muszą po prostu dodać lub zmodyfikować moduł, aby odzwierciedlić pożądaną zmianę w swojej witrynie, bez zakłócania ciągłości biznesowej lub doświadczenia użytkownika
Projekt architektoniczny Magento został stworzony przez programistów udostępniających rodzaj kodu źródłowego, który można łatwo dostosować do specyficznych potrzeb biznesowych. To piękno architektury pozwala programistom i sprzedawcom dodawać moduły i rozszerzać funkcjonalność motywu Magento eCommerce.
Większość platform wymaga modyfikacji podstawowego kodu w celu personalizacji produktu końcowego, ale Magento wykracza daleko poza typowe problemy. Dodanie opcji lub funkcjonalności jest łatwiejsze dzięki instalacji wtyczek Magento. Na przykład, jeśli chcesz dodać fragmenty strukturalne do stron produktów, wystarczy zainstalować rozszerzenie Magento rich snippets lub podobną aplikację. Nie trzeba zmieniać kodu i wstawiać dodatkowych informacji o produkcie osobno do każdej strony docelowej.
Projekt architektoniczny przynosi korzyści sprzedawcom i administratorom witryn eCommerce dzięki łatwemu dostosowywaniu, aktualizowaniu i dodawaniu nowych funkcji. Omówmy niektóre modele architektoniczne przed komentowaniem marki Magento.
Powiązany post: Jak edytować i usuwać zamówienie w Magento 2
Model MVC (kontroler widoku modelu)
MVC to aplikacja do projektowania, która dzieli dostęp do danych przez model, różnicuje frontend z widokiem, logikę biznesową poprzez kontroler. Ten wzorzec projektowy został wprowadzony w latach 70. XX wieku w celu oddzielenia interfejsu użytkownika od modelu. W wyniku włączenia MVC łatwiej jest naprawiać, konserwować i testować aplikację. Głównym tematem wzorca projektowego jest podział aplikacji na trzy aspekty architektoniczne, które obejmują model, widok i kontroler.
Model symbolizuje logikę biznesową aplikacji poprzez zestaw klas. Może to być model danych lub model biznesowy. Model pokazuje również, w jaki sposób dane są modyfikowane, zmieniane lub manipulowane.
Widok jest interfejsem użytkownika lub frontendem aplikacji. Obejmuje to komponenty interfejsu użytkownika, takie jak jQuery, CSS, HTML itp. Pokazuje dane pobierane z kontrolera aplikacji jako informacje o wyniku. Widok replikuje model z interfejsem użytkownika.
Kontroler jest odpowiedzialny za przetwarzanie żądań, które aplikacja otrzymuje z interfejsu użytkownika. Pobiera informacje od użytkowników końcowych przez View, przetwarza dane przez Model, a następnie przesyła je z powrotem do interfejsu (widoku). Działa jak pomost między modelem a widokiem.

Sugerowany post: Jak zgłosić rozszerzenie Magento 2 na rynek?
Widok modelu System ViewModel (MVVM)
MVVM to wzorzec architektoniczny wykorzystywany w programowaniu i tworzeniu oprogramowania. System działa na mechanizmie dwukierunkowego wiązania danych, który znajduje się między View a ViewModel. Upraszcza to automatyzację zmian w ViewModel, aby wyświetlić go w widoku.
MVVM ma Model i Widok, tak jak są one obecne w MVC, ale kontrolery są zastępowane przez ViewModel.
Czy Magento 2 to system MVVM czy MVC?
Magento 2 to system ViewModel View Model, a nie projekt ustrukturyzowany przez MVC. Model MVC został włączony do poprzedniej wersji i wydaje się być dość podobny do MVVM, ale MVVM jest znacznie bogatszy w dzielenie widoku i modelu w aplikacji.
MVVM ma trzy warstwy, które obejmują Model, View i ViewModel. Logika biznesowa rozszerzenia lub aplikacji jest reprezentowana jako model, podczas gdy front-end jest reprezentowany przez widok. Podobnie jak kontrolery służą jako mediator w modelu MVC, ViewModel wypełnia lukę między modelem a widokiem w systemie MVVM.
Mówi się, że rozszerzenie opracowane dla Magento 2 zawiera podstawowe elementy projektu, które omówiono powyżej. Natomiast rola kontrolerów nie została całkowicie usunięta z Magento 2, ponieważ jest on odpowiedzialny za zarządzanie przepływem użytkowników, w tym komunikację systemu o żądaniach użytkowników.
Pozwólcie, że wyjaśnię to samo na przykładzie. Dla przykładu możesz spróbować skonfigurować nowy adres URL i utworzyć dla niego szablon phtml. Gdy zażądasz nowego adresu URL w Magento 2, na przykład http://magento.abc.com/hi/friend, system MVVM wyśle żądanie do kontrolera, aby przetworzył je tak samo, jak w MVC. Ale istnieje zasadnicza różnica w odpowiedzialności kontrolera w MVVM. Jest odpowiedzialny za
- Określanie układu strony do wyboru
- Zarządzanie, aby zachować dane z żądań użytkowników
- I albo przekaż systemowi odpowiedź za pomocą protokołu HTTP, albo
- Kieruj użytkowników do następnej lub poprzedniej strony
Skonfigurowanie przykładowego adresu URL pomoże Ci zauważyć, że żadna zmienna nie zostanie wymieniona w widoku, ponieważ każdy składnik widoku jest odpowiedzialny za pozyskiwanie danych lub informacji z warstwy modelu, obiektu lub źródła zewnętrznego. MVVM sprawia, że Magento dzieli stronę HTML na wiele sekcji, które są nazywane kontenerami. Te pojemniki posiadają bloki, które są połączone strukturą przypominającą drzewo. Bloki zawierają ponadto plik szablonu phtml.
Obiekt bloku Magento służy jako ViewModel, jeśli mówisz konkretnie o systemie MVVM. Blok obiektów jest w stanie skanować i odczytywać modele biznesowe, żądania użytkowników, pozyskiwać dane z systemu zewnętrznego itp. plik szablonu jest określany jako Widok, który współpracuje wyłącznie z obiektem bloku, który jest modelem widoku
Wniosek
Magento 2 słusznie podjęło decyzję o przejściu na system Model View ViewModel, ponieważ była to potrzebna godzina. Model MVVM idzie o krok do przodu w zakresie partycjonowania logiki szablonu od logiki biznesowej. System jest z pewnością spekulowany, aby ułatwić sprzedawcom i użytkownikom końcowym, podczas gdy programiści mogą początkowo mieć trudności z kodowaniem rozszerzenia dla strony internetowej, która jest obsługiwana przez Magento 2 i system MVVM.