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