回答:
index.php
\Magento\Framework\App\Http
objectManager(ブートストラップの前に作成される)を使用してアプリケーションインスタンス()を作成し、methodを呼び出しますlaunch
。
HTTPアプリケーションインスタンスは初期ルーティングを行います。どの領域をロードする必要があるかを判断するために、URLの最初の部分を取得します(admin / frontend / rest / ...)。
エリアが定義されると、そのエリアの設定が読み込まれます(すべての設定が読み込まれたMagento 1とは異なります)。
次にMagento\Framework\App\FrontControllerInterface::dispatch
、要求された領域のアプリケーションオブジェクト呼び出し。フロントコントローラーは、Magento 1と同じルーティングを行います。すべてのルーターは、要求に合わせて反復されます。要求に一致するルーターは、に一致するActionControllerのインスタンスを返しますFrontController
。1つのエリアのルーターのみが使用されるため、このプロセスはより効率的です(フロントエンドでは管理ルーターは使用されません)。すべての余分な動作は、フロントコントローラから移動されたplugins
のFrontController
とアクションコントローラ。
ときにFrontController
アクションコントローラのインスタンスを取得し、それを呼び出すdispatch
ことに。アクションコントローラーはタスクを実行し、ResultInterface
(ページ、リダイレクトなどの)実装のインスタンスを返します。
FrontController
ResultInterface
応答をレンダリングするアプリケーションインスタンスに戻るだけです。
Meet Magento NLでプレゼンテーションを行いました:http : //www.slideshare.net/Dutchento/anton-kril-mm15nl
以下のリンクを確認してください。要求フローは非常にうまく定義されています。
興味のある人のためのトピックに関するいくつかのリソースを以下に示します。