index.php
\Magento\Framework\App\Http
objectManager (जो बूटस्ट्रैप में उससे पहले बनाया गया है) और कॉल विधि का उपयोग करके एप्लिकेशन इंस्टेंस ( ) बनाता है launch
।
Http एप्लिकेशन इंस्टेंस प्रारंभिक रूटिंग करता है: यह पता लगाने के लिए url का पहला भाग लेता है कि किस क्षेत्र को लोड किया जाना चाहिए (एडमिन / फ्रंटेंड / रेस्ट / ...)।
जब क्षेत्र परिभाषित किया जाता है, तो उस क्षेत्र के लिए कॉन्फ़िगरेशन लोड किया जाता है (Magento 1 के विपरीत जहां सभी कॉन्फ़िगरेशन लोड किया गया था)।
फिर Magento\Framework\App\FrontControllerInterface::dispatch
अनुरोधित क्षेत्र के आवेदन ऑब्जेक्ट कॉल । फ्रंट कंट्रोलर मैजेंटो 1 में ही राउटिंग करता है: सभी राउटर मैच रिक्वेस्ट से iterated हैं। राउटर जो अनुरोध के साथ मेल खाता है, एक्शनकंट्रोलर के रिटर्न रिटर्न से मेल खाता है FrontController
। यह प्रक्रिया अधिक कुशल है क्योंकि केवल एक क्षेत्र के राउटर का उपयोग किया जाता है (व्यवस्थापक राउटर का उपयोग फ्रंटएंड में नहीं किया जाता है)। सभी अतिरिक्त व्यवहार करने के लिए सामने नियंत्रक से ले जाया गया था plugins
की FrontController
और कार्रवाई नियंत्रकों।
जब FrontController
एक्शन कंट्रोलर का उदाहरण मिलता है तो वह उस dispatch
पर कॉल करता है। एक्शन कंट्रोलर अपना कार्य करता है और कुछ कार्यान्वयन के उदाहरण ResultInterface
(जैसे पेज, रीडायरेक्ट, ...) देता है।
FrontController
ResultInterface
प्रतिक्रिया देने वाले अनुप्रयोग इंस्टेंस पर वापस आता है।
मीट मैजेंटो एनएल में इस पर मैंने प्रस्तुति दी:
http://www.slideshare.net/Dutchento/anton-kril-mm15nl