그것들은 많은 소란을 불러 일으키며 Magento 2
네임 스페이스와 같은 개념이 그것에 포함되었습니다. 나는 요청 흐름이 어떻게 처리되었는지 알고 싶어 궁금하다 Magento 2
. 누군가 내게 간단한 설명을 해줄 수있다.
Anthol Krit 프레젠테이션의 흥미로운 점
Magneto2는 8000 개의 클래스 를 Magento의 2700 과 비교했습니다. 1
그것들은 많은 소란을 불러 일으키며 Magento 2
네임 스페이스와 같은 개념이 그것에 포함되었습니다. 나는 요청 흐름이 어떻게 처리되었는지 알고 싶어 궁금하다 Magento 2
. 누군가 내게 간단한 설명을 해줄 수있다.
Anthol Krit 프레젠테이션의 흥미로운 점
Magneto2는 8000 개의 클래스 를 Magento의 2700 과 비교했습니다. 1
답변:
index.php
\Magento\Framework\App\Http
부트 스트랩에서 이전에 작성된 objectManager를 사용하여 애플리케이션 인스턴스 ( )를 작성하고 method를 호출합니다 launch
.
Http Application 인스턴스는 초기 라우팅을 수행합니다. url의 첫 부분이로드되어야하는 영역 (admin / frontend / rest / ...)을 알아냅니다.
영역이 정의되면 해당 영역에 대한 구성이로드됩니다 (모든 구성이로드 된 Magento 1과 달리).
그런 다음 Magento\Framework\App\FrontControllerInterface::dispatch
요청 된 영역의 응용 프로그램 개체 호출 프론트 컨트롤러는 마 젠토 1에서와 동일한 라우팅을 수행합니다. 모든 라우터는 요청에 맞게 반복됩니다. 요청과 일치하는 라우터는 일치하는 ActionController 인스턴스를 반환합니다 FrontController
. 이 프로세스는 한 영역의 라우터 만 사용하기 때문에보다 효율적입니다 (프론트 엔드에서는 관리자 라우터가 사용되지 않음). 모든 추가 동작은 프론트 컨트롤러에서 이동 된 plugins
의 FrontController
와 액션 컨트롤러.
때 FrontController
액션 컨트롤러의 인스턴스를 가져옵니다는 호출 dispatch
그것을. 액션 컨트롤러는 작업을 수행하고 일부 구현 인스턴스 ResultInterface
(예 : 페이지, 리디렉션 등)를 반환합니다 .
FrontController
ResultInterface
응답을 렌더링하는 애플리케이션 인스턴스로 돌아갑니다 .
Meet Magento NL에서 이에 대한 프레젠테이션을했습니다 : http://www.slideshare.net/Dutchento/anton-kril-mm15nl
아래 링크를 확인하십시오. 요청 흐름은 매우 훌륭하게 정의됩니다.
관심있는 사람을위한 주제에 대한 몇 가지 자료는 다음과 같습니다.