请求Magento 2的流程


21

他们忙得不可开交Magento 2,像Namespaces这样的概念已经纳入其中。我只是很好奇,知道请求流程是如何处理的Magento 2,有人可以简要介绍一下。

来自Anthol Krit演讲的有趣观点

Magneto2拥有8000个课程,而Magento 1中有2700 课程


4
Magento 2建筑师Anton Kril在这里进行了解释:de.slideshare.net/Dutchento/anton-kril-mm15nl
Fabian Schmengler,2015年

Answers:


21

index.php\Magento\Framework\App\Http使用objectManager(在引导程序之前创建的对象)创建应用程序实例()并调用method launch

Http Application实例执行初始路由:它使用url的第一部分来确定应该加载哪个区域(admin / frontend / rest / ...)。

定义区域后,将加载该区域的配置(与加载所有配置的Magento 1不同)。

然后,应用程序调用Magento\Framework\App\FrontControllerInterface::dispatch所请求区域的对象。Front Controller的路由与Magento 1中的路由相同:迭代所有路由器以匹配请求。与请求匹配的路由器返回与匹配的ActionController的实例FrontController。由于仅使用一个区域的路由器(前端未使用管理路由器),因此此过程效率更高。所有额外的行为都从前端控制器转移到pluginsof FrontController和Action Controllers。

FrontController获取动作控制器的实例时,它将对其进行调用dispatch。动作控制器执行其任务并返回某些实现的实例ResultInterface(如页面,重定向等)。

FrontController只是返回ResultInterface到呈现响应的应用程序实例。

我在Meet Magento NL上做了有关此的介绍:http : //www.slideshare.net/Dutchento/anton-kril-mm15nl


谢谢@anthon的回答。
Dimag Kharab 2015年



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.