Magento 2, Model Görünümüdür, Model Sistemini Görüntüle ve MVC Değildir - Açıklamalı
Yayınlanan: 2017-10-04Magento 2'nin piyasaya sürülmesi, geliştiricilerin bir web sitesi için plan yapma ve kod yazma şeklini büyük ölçüde değiştirdi. Magento, ürünlerini daha geniş bir kitleye kolayca ulaştırmak için dünya çapında binlerce tüccara kusursuz bir e-ticaret platformu sağlıyor. Magento 2, tüccarların uzun zamandan beri kullandığı olağanüstü mimari ile uyumludur.
Örneğin, çevrimiçi gözlük satın alabileceğiniz GlassesUSA.com gibi önde gelen e-ticaret platformları Magento kullanıyor. GlassesUSA'daki ekibe göre Magento, web sitesini her gün gelişen çeşitli iş gereksinimlerine uyacak şekilde kolayca ölçeklenebilir hale getirdi. Değişen pazar dinamikleri ve sürekli genişleyen müşteri tabanı ile Magento'yu benimsemek en hayati kararlardan biri olmuştur. Bunun olumlu bir etkisi oldu ve web sitesi bakımı için kesinti sürelerini neredeyse sıfıra indirdi. İş sürekliliğini veya kullanıcı deneyimini engellemeden web sitelerinde istenen değişikliği yansıtmak için bir modül eklemeleri veya değiştirmeleri yeterlidir.
Magento'nun mimari tasarımı, işletmeye özel ihtiyaçlara göre kolayca özelleştirilebilen bir tür kaynak kodu sağlayan geliştiriciler tarafından oluşturulmuştur. Geliştiricilerin ve tüccarların modüller eklemesine ve bir Magento e-Ticaret temasının işlevselliğini genişletmesine izin veren mimarinin güzelliğidir.
Platformların çoğu, nihai ürünü kişiselleştirmek için çekirdek kodun değiştirilmesini gerektirir, ancak Magento yaygın sorunların çok ötesindedir. Magento eklentilerinin yüklenmesiyle bir seçenek veya işlevsellik eklenmesi daha kolay hale getirilmiştir. Örneğin, ürün sayfalarınıza yapılandırılmış snippet'ler eklemeniz gerekiyorsa, basit bir Magento zengin snippet uzantısı veya benzer bir uygulama bu işi yapabilir. Kodu değiştirmeye ve ek ürün bilgilerini her bir açılış sayfasına ayrı ayrı enjekte etmeye gerek yoktur.
Mimari tasarım, e-ticaret web sitelerinin satıcılarına ve yöneticilerine kolayca özelleştirme, güncelleme ve yeni özellikler ekleme konusunda fayda sağlar. Magento'nun yapısı hakkında yorum yapmadan önce bazı mimari modelleri tartışalım.
İlgili Yazı: Magento 2'de Sipariş Nasıl Düzenlenir ve Silinir
MVC (Model Görünüm Denetleyicisi) Modeli
MVC, model aracılığıyla veri erişimini bölen, ön ucu görünümle, iş mantığını bir denetleyici aracılığıyla farklılaştıran bir tasarım uygulamasıdır. Bu tasarım modeli, kullanıcı arayüzünü modelden ayırmak için 1970'lerde tanıtıldı. MVC'nin dahil edilmesinin bir sonucu olarak, bir uygulamayı onarmak, bakımını yapmak ve test etmek daha kolay hale gelir. Tasarım modelinin ana teması, bir uygulamanın model, görünüm ve denetleyiciyi içeren üç mimari açıdan bölünmesidir.
Model, bir uygulamanın iş mantığını bir dizi sınıf aracılığıyla sembolize eder. Bir veri modeli veya iş modeli olabilir. Bir model ayrıca verilerin değiştirilme, değiştirilme veya manipüle edilme şeklini de gösterir.
Görünüm, bir uygulamanın kullanıcı arabirimi veya ön ucudur. Bu, jQuery, CSS, HTML vb. gibi UI bileşenlerini içerir. Uygulamanın denetleyicisinden aldığı verileri bir sonuç bilgisi olarak gösterir. Görünüm, modeli bir kullanıcı arabirimiyle çoğaltır.
Denetleyici, bir uygulamanın ön uçtan aldığı istekleri işlemekten sorumludur. Görünüm aracılığıyla son kullanıcılardan bilgi alır, verileri Model aracılığıyla işler ve ardından tekrar ön uca (görünüm) aktarır. Model ve görünüm arasında bir köprü görevi görür.
Önerilen Gönderi: Magento 2 uzantısı pazara nasıl gönderilir?
Model Görünümü ViewModel (MVVM) Sistemi
MVVM, programlama ve yazılım geliştirmede kullanılan mimari bir modeldir. Sistem, View ve ViewModel arasında iki yönlü bir veri bağlama mekanizması üzerinde çalışır. Bu, Görünümde görüntülemek için ViewModel içindeki değişiklikleri otomatikleştirmeyi basitleştirir.
MVVM, MVC'de olduğu gibi Model ve Görünüme sahiptir, ancak denetleyiciler ViewModel ile değiştirilir.
Magento 2 bir MVVM sistemi mi yoksa MVC mi?
Magento 2, bir Model Görünümü ViewModel Sistemidir ve artık MVC tarafından yapılandırılmış bir tasarım değildir. MVC modeli önceki sürüme dahil edilmiştir ve MVVM'ye oldukça benzer görünmektedir, ancak MVVM, bir uygulamada Görünüm ve Modeli bölme konusunda çok daha zengindir.
MVVM, Model, View ve ViewModel'i içeren üç katmana sahiptir. Bir uzantının veya uygulamanın iş mantığı Model olarak, ön uç ise Görünüm ile temsil edilir. Tıpkı Kontrolörlerin bir MVC modelinde arabulucu olarak hizmet etme şekli gibi, ViewModel de bir MVVM sisteminde Model ve Görünüm arasındaki boşluğu kapatır.
Magento 2 için geliştirilen bir uzantının yukarıda tartışılan temel tasarım öğelerini içerdiği söyleniyor. Oysa denetleyicilerin rolü, sistemin kullanıcıların istekleri hakkında iletişim kurmayı içeren kullanıcı akışını yönetmekten sorumlu olduğu için Magento 2'den tamamen kaldırılmaz.
Aynı şeyi bir örnek yardımıyla açıklayayım. Örnek olması açısından, yeni bir URL oluşturmayı ve bunun için bir phtml şablonu oluşturmayı deneyebilirsiniz. Magento 2'de http://magento.abc.com/hi/friend gibi yeni bir URL talep ettiğinizde MVVM sistemi, MVC'de olduğu gibi işlemesi için talebi bir denetleyiciye gönderir. Ancak, MVVM'de denetleyicinin sorumluluğunda büyük bir fark vardır. Sorumlu tutuluyor
- Seçilecek sayfa düzenini belirleme
- Kullanıcı isteklerinden gelen verileri korumayı yönetme
- Ve ya sistemin yanıt vermesi için HTTP ile iletişim kurun ya da
- Kullanıcıları sonraki veya önceki sayfaya yönlendirin
Örnek bir URL ayarlamak, Görünümde tek bir değişkenin bahsedilmediğini fark etmenize yardımcı olacaktır, çünkü her Görünüm bileşeni, model katmanından, nesneden veya harici bir kaynaktan veri veya bilgi türetmekten sorumlu tutulur. MVVM, Magento'nun bir HTML sayfasını kapsayıcı olarak adlandırılan birden çok bölüme ayırmasını sağlar. Bu kaplar, ağaç benzeri bir yapıyla birbirine bağlanan bloklara sahiptir. Bloklar ayrıca bir phtml şablon dosyası içerir.
Özellikle MVVM sistemi hakkında konuşursanız, Magento blok nesnesi bir ViewModel işlevi görür. Nesne bloğu, iş modellerini, kullanıcı isteklerini, harici sistemden veri alma, vb. tarama ve okuma yeteneğine sahiptir. Şablon dosyası, yalnızca Görünüm Modeli olan blok nesnesi ile işbirliği yapan Görünüm olarak adlandırılır.
Çözüm
Magento 2, haklı olarak günün bir ihtiyacı olduğu için Model View ViewModel sistemine geçme kararını aldı. MVVM modeli, şablon mantığını iş mantığından ayırmada bir adım önde gider. Sistem kesinlikle tüccarları ve son kullanıcıları kolaylaştıracak şekilde tasarlanırken, geliştiriciler Magento 2 ve MVVM sistemi tarafından desteklenen bir web sitesi için bir uzantı kodlamayı başlangıçta zor bulabilirler.