Поток запросов Magento 2

21

Их много суетится Magento 2, в них включены такие понятия, как Namespaces и т. Д. Мне просто любопытно узнать, как обрабатывается поток REQUEST Magento 2, может кто-нибудь дать мне краткое изложение.

Интересный момент из презентации Anthol Krit

Magneto2 имеет 8000 классов по сравнению с 2700 в Magento 1

Димаг Хараб
источник
4
Архитектор Magento 2 Антон Криль объясняет это здесь: de.slideshare.net/Dutchento/anton-kril-mm15nl
Фабиан Шменглер,

Ответы:

21

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

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

Когда область определена, конфигурация для этой области загружается (в отличие от Magento 1, где была загружена вся конфигурация).

Затем объект приложения вызывает Magento\Framework\App\FrontControllerInterface::dispatchзапрашиваемую область. Front Controller выполняет маршрутизацию так же, как в Magento 1: все маршрутизаторы повторяются для соответствия запросу. Маршрутизатор, который соответствует запросу, возвращает экземпляр ActionController, которому соответствует FrontController. Этот процесс более эффективен, потому что используются только маршрутизаторы одной области (административный маршрутизатор не используется во внешнем интерфейсе). Все дополнительное поведение было перенесено из переднего контроллера pluginsиз FrontControllerи контроллеров действий.

Когда FrontControllerполучает экземпляр контроллера действия, он вызывает dispatchего. Контроллер действий выполняет свою задачу и возвращает экземпляр некоторой реализации ResultInterface(например, page, redirect, ...).

FrontControllerпросто возвращается ResultInterfaceк экземпляру приложения, который отображает ответ.

Я сделал презентацию по этому вопросу на Meet Magento NL: http://www.slideshare.net/Dutchento/anton-kril-mm15nl

Антон Криль
источник
Спасибо @anthon за ваш ответ.
Димаг Хараб
2
Мне понадобится