ร้องขอโฟลว์ของ Magento 2


21

ความยุ่งยากเกิดขึ้นMagento 2มากมายแนวคิดเช่นเนมสเปซ ฯลฯ ถูกรวมเข้าไว้ด้วยกัน ฉันแค่อยากรู้ว่าการจัดการคำขอไหลนั้นมีMagento 2ใครบางคนสามารถให้ฉันสั้น ๆ ได้

จุดที่น่าสนใจจากการนำเสนอ Anthol Krit

Magneto2 มี8000คลาสเมื่อเปรียบเทียบกับ2700ใน Magento 1


4
Magento 2 สถาปนิก Anton Kril อธิบายได้ที่นี่: de.slideshare.net/Dutchento/anton-kril-mm15nl
Fabian Schmengler

คำตอบ:


21

index.phpสร้างอินสแตนซ์แอพลิเคชัน ( \Magento\Framework\App\Http) โดยใช้ objectManager (ที่ถูกสร้างขึ้นก่อนหน้านั้นในบูต) launchและบริการโทรวิธี

อินสแตนซ์ของแอปพลิเคชัน Http ทำการกำหนดเส้นทางเริ่มต้น: ใช้เวลาส่วนแรกของ url เพื่อกำหนดพื้นที่ที่ควรโหลด (ผู้ดูแลระบบ / ส่วนหน้า / ส่วนที่เหลือ / ... )

เมื่อมีการกำหนดพื้นที่การกำหนดค่าสำหรับพื้นที่นั้นจะถูกโหลด (ต่างจาก Magento 1 ที่โหลดการกำหนดค่าทั้งหมด)

จากนั้นเรียกใช้ออบเจกต์Magento\Framework\App\FrontControllerInterface::dispatchของพื้นที่ที่ร้องขอ Front Controller ทำการกำหนดเส้นทางเช่นเดียวกับใน Magento 1: เราเตอร์ทั้งหมดได้รับการวนซ้ำเพื่อให้ตรงกับคำขอ เราเตอร์ที่ตรงกับคำขอเช่นผลตอบแทนของ ActionController FrontControllerจับคู่กับ กระบวนการนี้มีประสิทธิภาพมากขึ้นเนื่องจากมีการใช้เราเตอร์เพียงแห่งเดียวเท่านั้น (เราเตอร์ผู้ดูแลระบบไม่ได้ใช้งานในส่วนหน้า) ทั้งหมดพฤติกรรมพิเศษถูกย้ายจากตัวควบคุมด้านหน้าpluginsของFrontControllerและการควบคุมการดำเนินการ

เมื่อFrontControllerได้รับอินสแตนซ์ของตัวควบคุมการดำเนินการมันเรียกร้องให้dispatchมัน ตัวควบคุมการดำเนินการทำงานและส่งคืนอินสแตนซ์ของการใช้งานบางอย่างResultInterface(เช่นหน้าเว็บการเปลี่ยนเส้นทาง ... )

FrontControllerเพียงแค่กลับResultInterfaceไปที่ Application Instance ที่แสดงการตอบสนอง

ฉันได้นำเสนอเกี่ยวกับเรื่องนี้ที่ Meet Magento NL: http://www.slideshare.net/Dutchento/anton-kril-mm15nl


ขอบคุณสำหรับคำตอบของคุณ
Dimag Kharab

2
ฉันจะใช้เวลามากพอที่จะเข้าใจแนวคิดทั้งหมดที่ดูเหมือน
Dimag Kharab


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.