Magento 2 คือ Model View, View Model System และไม่ใช่ MVC – อธิบาย

เผยแพร่แล้ว: 2017-10-04

การเปิดตัว Magento 2 ได้เปลี่ยนวิธีที่นักพัฒนาวางแผนและเขียนโค้ดสำหรับเว็บไซต์อย่างมาก Magento นำเสนอแพลตฟอร์มอีคอมเมิร์ซที่ไร้ที่ติแก่ผู้ค้าหลายพันรายทั่วโลก เพื่อจัดวางผลิตภัณฑ์ของตนให้เข้าถึงกลุ่มผู้ชมที่กว้างขึ้น Magento 2 สอดคล้องกับสถาปัตยกรรมอันน่าทึ่งที่พ่อค้าใช้กันมานาน

ตัวอย่างเช่น แพลตฟอร์มอีคอมเมิร์ซชั้นนำอย่าง GlassesUSA.com ซึ่งคุณสามารถซื้อแว่นตาออนไลน์ได้ กำลังใช้ Magento ทีมงานของ GlassesUSA กล่าวว่า Magento ได้ทำให้เว็บไซต์สามารถปรับขนาดได้อย่างง่ายดายเพื่อให้เหมาะกับความต้องการทางธุรกิจที่หลากหลาย ซึ่งมีการพัฒนาทุกวัน ด้วยการเปลี่ยนแปลงของตลาดและฐานลูกค้าที่เพิ่มมากขึ้นเรื่อยๆ การนำ Magento มาใช้ถือเป็นหนึ่งในการตัดสินใจที่สำคัญที่สุด สิ่งนี้ส่งผลในเชิงบวกและลดเวลาหยุดทำงานของการบำรุงรักษาเว็บไซต์ให้เหลือเกือบเป็นศูนย์ พวกเขาเพียงแค่ต้องเพิ่มหรือแก้ไขโมดูลเพื่อให้สะท้อนถึงการเปลี่ยนแปลงที่ต้องการในเว็บไซต์ของพวกเขา โดยไม่ขัดขวางความต่อเนื่องทางธุรกิจหรือประสบการณ์ของผู้ใช้

การออกแบบสถาปัตยกรรมของวีโอไอพีถูกสร้างขึ้นโดยนักพัฒนาทำให้มีซอร์สโค้ดประเภทหนึ่งที่สามารถปรับแต่งให้เข้ากับความต้องการเฉพาะธุรกิจได้อย่างง่ายดาย เป็นความงามของสถาปัตยกรรมที่ช่วยให้นักพัฒนาและผู้ค้าสามารถเพิ่มโมดูลและขยายการทำงานของธีม Magento eCommerce

แพลตฟอร์มส่วนใหญ่ต้องการการปรับเปลี่ยนรหัสหลักสำหรับการปรับแต่งผลิตภัณฑ์ขั้นสุดท้าย แต่ Magento นั้นอยู่ไกลเกินกว่าปัญหาทั่วไป การเพิ่มตัวเลือกหรือฟังก์ชันทำได้ง่ายขึ้นด้วยการติดตั้งปลั๊กอิน Magento ตัวอย่างเช่น หากคุณต้องการเพิ่มข้อมูลเพิ่มเติมในหน้าผลิตภัณฑ์ การติดตั้งส่วนขยายตัวอย่างข้อมูลสมบูรณ์ของ Magento หรือแอปพลิเคชันที่คล้ายกันอย่างง่ายก็สามารถทำได้ ไม่จำเป็นต้องแก้ไขโค้ดและใส่ข้อมูลผลิตภัณฑ์เพิ่มเติมแยกกันในแต่ละหน้า Landing Page

การออกแบบสถาปัตยกรรมมีประโยชน์ต่อผู้ขายและผู้ดูแลระบบของเว็บไซต์อีคอมเมิร์ซในการปรับแต่ง อัปเดต และเพิ่มคุณสมบัติใหม่ได้อย่างง่ายดาย ให้เราพูดถึงรูปแบบสถาปัตยกรรมบางอย่างก่อนที่จะแสดงความคิดเห็นเกี่ยวกับยี่ห้อของ Magento

โพสต์ที่เกี่ยวข้อง: วิธีแก้ไขและลบคำสั่งซื้อใน Magento 2

MVC (คอนโทรลเลอร์ดูโมเดล) รุ่น

MVC เป็นแอปพลิเคชันการออกแบบที่แยกการเข้าถึงข้อมูลผ่านโมเดล แยกความแตกต่างส่วนหน้าด้วยมุมมอง ตรรกะทางธุรกิจผ่านตัวควบคุม รูปแบบการออกแบบนี้ถูกนำมาใช้ในปี 1970 เพื่อแยกส่วนต่อประสานผู้ใช้ออกจากแบบจำลอง จากการรวมตัวกันของ MVC ทำให้การซ่อมแซม บำรุงรักษา และทดสอบแอปพลิเคชันทำได้ง่ายขึ้น ธีมหลักของรูปแบบการออกแบบคือการแบ่งแอปพลิเคชันในสามด้านสถาปัตยกรรม ซึ่งรวมถึงแบบจำลอง มุมมอง และตัวควบคุม

โมเดลนี้เป็นสัญลักษณ์ของตรรกะทางธุรกิจของแอปพลิเคชันผ่านชุดของคลาส อาจเป็นโมเดลข้อมูลหรือโมเดลธุรกิจก็ได้ โมเดลยังแสดงวิธีการแก้ไข เปลี่ยนแปลง หรือจัดการข้อมูลอีกด้วย

มุมมองเป็นส่วนต่อประสานกับผู้ใช้หรือส่วนหน้าของแอปพลิเคชัน ซึ่งรวมถึงส่วนประกอบ UI เช่น jQuery, CSS, HTML ฯลฯ โดยจะแสดงข้อมูลที่ได้รับจากตัวควบคุมของแอปพลิเคชันเป็นข้อมูลผลลัพธ์ ดูจำลองแบบจำลองด้วยอินเทอร์เฟซผู้ใช้

ผู้ควบคุมมีหน้าที่ในการประมวลผลคำขอที่แอปพลิเคชันได้รับจากส่วนหน้า มันดึงข้อมูลจากผู้ใช้ปลายทางผ่าน View ประมวลผลข้อมูลผ่าน Model แล้วข้ามผ่านกลับไปยังส่วนหน้า (มุมมอง) มันทำงานเหมือนเป็นสะพานเชื่อมระหว่างตัวแบบกับมุมมอง

โพสต์ที่แนะนำ: จะส่งส่วนขยาย Magento 2 ไปยังตลาดได้อย่างไร

ดูโมเดล ระบบ ViewModel (MVVM)

MVVM เป็นรูปแบบสถาปัตยกรรมที่ใช้ในการเขียนโปรแกรมและการพัฒนาซอฟต์แวร์ ระบบทำงานบนกลไกการผูกข้อมูลแบบสองทางที่อยู่ระหว่าง View และ ViewModel สิ่งนี้ทำให้การเปลี่ยนแปลงอัตโนมัติภายใน ViewModel ง่ายขึ้นเพื่อแสดงในมุมมอง

MVVM มี Model และ View เช่นเดียวกับที่มีใน MVC แต่ตัวควบคุมจะถูกแทนที่ด้วย ViewModel

Magento 2 เป็นระบบ MVVM หรือ MVC หรือไม่

Magento 2 เป็นระบบ Model View ViewModel และไม่มีการออกแบบโครงสร้างโดย MVC อีกต่อไป โมเดล MVC รวมอยู่ในเวอร์ชันก่อนหน้าและดูเหมือนว่าจะค่อนข้างคล้ายกับ MVVM แต่ MVVM เป็นวิธีที่สมบูรณ์กว่าในการแบ่งมุมมองและโมเดลในแอปพลิเคชัน

MVVM มีสามชั้นที่ประกอบด้วย Model, View และ ViewModel ตรรกะทางธุรกิจของส่วนขยายหรือแอปพลิเคชันจะแสดงเป็นแบบจำลอง ในขณะที่ส่วนหน้าจะแสดงด้วยมุมมอง เช่นเดียวกับวิธีที่ตัวควบคุมทำหน้าที่เป็นสื่อกลางในโมเดล MVC ViewModel จะเชื่อมช่องว่างระหว่าง Model และ View ในระบบ MVVM

ส่วนขยายที่พัฒนาขึ้นสำหรับ Magento 2 ประกอบด้วยองค์ประกอบการออกแบบพื้นฐานที่กล่าวถึงข้างต้น ในขณะที่บทบาทของผู้ควบคุมไม่ได้ถูกลบออกจาก Magento 2 อย่างสมบูรณ์ เนื่องจากมีหน้าที่รับผิดชอบในการจัดการโฟลว์ผู้ใช้ซึ่งรวมถึงการสื่อสารระบบเกี่ยวกับคำขอของผู้ใช้

ให้ฉันอธิบายสิ่งเดียวกันด้วยความช่วยเหลือของตัวอย่าง เพื่อเป็นตัวอย่าง คุณสามารถลองตั้งค่า URL ใหม่และสร้างเทมเพลต HTML สำหรับ URL นั้น เมื่อคุณขอ URL ใหม่ใน Magento 2 เช่น http://magento.abc.com/hi/friend ระบบ MVVM จะส่งคำขอไปยังคอนโทรลเลอร์เพื่อดำเนินการเหมือนกับที่ทำใน MVC แต่มีความแตกต่างที่สำคัญในความรับผิดชอบของผู้ควบคุมใน MVVM มันมีหน้าที่รับผิดชอบสำหรับ

  • กำหนดเค้าโครงหน้าเพื่อเลือก
  • การจัดการเพื่อรักษาข้อมูลจากคำขอของผู้ใช้
  • และสื่อสารระบบให้ตอบสนองด้วย HTTP หรือ
  • นำผู้ใช้ไปยังหน้าถัดไปหรือก่อนหน้า

การตั้งค่า URL ตัวอย่างจะช่วยให้คุณสังเกตเห็นว่าไม่มีการกล่าวถึงตัวแปรเดียวใน View เนื่องจากองค์ประกอบ View แต่ละรายการมีหน้าที่ในการรับข้อมูลหรือข้อมูลเองจากเลเยอร์โมเดล ออบเจ็กต์ หรือแหล่งที่มาภายนอก MVVM ทำให้ Magento แบ่งหน้า HTML ออกเป็นหลายส่วนที่เรียกว่าคอนเทนเนอร์ คอนเทนเนอร์เหล่านี้มีบล็อกที่เชื่อมต่อผ่านโครงสร้างคล้ายต้นไม้ บล็อคเพิ่มเติมรวมถึงไฟล์เทมเพลต phtml

วัตถุบล็อก Magento ทำหน้าที่เป็น ViewModel หากคุณพูดถึงระบบ MVVM โดยเฉพาะ บล็อกอ็อบเจ็กต์มีความสามารถในการสแกนและอ่านโมเดลธุรกิจ คำขอของผู้ใช้ รับข้อมูลจากระบบภายนอก ฯลฯ ไฟล์เทมเพลตเรียกว่า View ที่ทำงานร่วมกับอ็อบเจ็กต์บล็อกที่เป็น View Model เท่านั้น

บทสรุป

Magento 2 ได้ตัดสินใจอย่างถูกต้องในการย้ายไปยังระบบ Model View ViewModel เนื่องจากเป็นช่วงเวลาที่ต้องการของชั่วโมง โมเดล MVVM ก้าวหน้าไปอีกขั้นในการแบ่งพาร์ติชันตรรกะเทมเพลตจากตรรกะทางธุรกิจ คาดว่าระบบจะอำนวยความสะดวกให้กับผู้ค้าและผู้ใช้ปลายทางอย่างแน่นอน ในขณะที่นักพัฒนาอาจพบว่าเป็นการยากในตอนแรกที่จะรับมือกับการเข้ารหัสส่วนขยายสำหรับเว็บไซต์ที่ขับเคลื่อนโดย Magento 2 และระบบ MVVM