Request Routing in Magento 2

Jun 8, 2017453
Request Routing in Magento 2

In the article, we’re going to compare routing in Magento 1 and Magento 2. Actually, there’s an article containing routing description in Magento 1, so in case you’d like to have a closer look at routing in Magento 1, read our blog.

Route determination starts from searching for current route defined in the system. The process starts here:

/vendor/magento/framework/App/FrontController.php

In the method dispatch() as well as in Magento 1 file app/code/core/Mage/Core/Controller/Varien/Front.php there are some matches:

  • Checking is a request by dispatcher ($request->isDispatched());
  • Searching for matches ($router->match($request)).

In comparison with Magento 1, there are only two routings determined in Magento 2:

  • /vendor/magento/framework/App/Router/Base.php;
  • /vendor/magento/framework/App/Router/DefaultRouter.php.

The same as in Magento 1, after 100 iterations if a router is not found, there will be a message displayed. Here we can find attributes of Magento 1:

The main steps of routing process are the same as in Magento 1:

  • Determining module
  • Determining controller
  • Action for detection
  • Data for current request detection

Router initialization in Magento 2 differs from Magento 1:

Initialization occurs when searching for an appropriate router:

Further routing process resembles Magento 1:

Partner With Us Let's discuss how to grow your business. Get a Free Quote.
Talk to Andrey

The first three elements are considered as main. They define a module, controller, and action for a current request.

Then module is determined from its moduleFrontName:

Then a controller and action for a current request are determined:

Besides, it is checked whether the connection is safe if there is a controller file, as well as previous realization, is stored:

It implies that route is processed. Module, controller, and action are determined. Moreover, an action for a current request is being processed.

Control element returns for performing action:

Where for a current request output is determined.


Partner With Us Looking for a partner that will help you to grow your business? We are the right company to develop your webstore. Feel free to get in touch with us. We will be happy to discuss your business opportunities and provide you with a Free Quote. Talk to Andrey

Post a new comment

top
BelVG Newsletter
Subscribe to our mailing list and get interesting stuff and updates to your email inbox.
Email *