Запит запиту на Magento 2


21

Їх багато суєти відбувається Magento 2, концепція, як простори імен тощо, була включена в неї. Мені просто цікаво дізнатись, як обробляються потоки ЗАПИТУВАННЯ Magento 2, чи може хто-небудь розповісти мені.

Цікавий момент з презентації Anthol Krit

Magneto2 має 8000 класів порівняно з 2700 в Magento 1


4
Архітектор Magento 2 Антон Криль
Fabian Schmengler

Відповіді:


21

index.phpстворює екземпляр програми ( \Magento\Framework\App\Http), використовуючи objectManager (який створюється до цього в завантажувальному інструменті) та викликує метод launch.

Екземпляр програми Http робить початкову маршрутизацію: вона займає першу частину URL-адреси, щоб визначити, яку область слід завантажити (admin / frontend / rest / ...).

Коли область визначена, конфігурація для цієї області завантажується (на відміну від Magento 1, де була завантажена вся конфігурація).

Потім об'єкт програми викликає Magento\Framework\App\FrontControllerInterface::dispatchзапитувану область. Передній контролер виконує маршрутизацію так само, як у Magento 1: всі маршрутизатори відіграні відповідно до запиту. Маршрутизатор, який відповідає запиту, повертає екземпляр ActionController, відповідний FrontController. Цей процес є більш ефективним, оскільки використовуються лише маршрутизатори однієї області (маршрутизатор адміністратора не використовується в інтерфейсі). Все додаткове поведінка була перенесено з переднього контролера pluginsз FrontControllerі контролерів дій.

Коли FrontControllerотримує екземпляр контролера дії, він викликає dispatchйого. Контролер дій виконує своє завдання і повертає екземпляр деякої реалізації ResultInterface(наприклад, сторінка, переадресація, ...).

FrontControllerпросто повертається ResultInterfaceдо екземпляра програми, який надає відповідь.

Я презентував це на Meet Magento NL: http://www.slideshare.net/Dutchento/anton-kril-mm15nl


Тонкс @anthon за вашу відповідь.
Дімаг Хараб



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.