Magento 2 URLセグメントの解析はどこで行われますか


7

Magento 2ルーティングでは、システムはURLセグメントを3つのセクションに解析します

module-or-front/segment2/segment3

これはどの特定のクラスファイルで発生しますか?

言い換えると、リクエストオブジェクトにはgetModuleName次のようなメソッドがあります。

public function getModuleName()
{
    return $this->module;
}

Magento 2は、最終的にmoduleプロパティを設定する文字列をどこで取得しますか?


1
@AmitBera質問を理解したかわかりません-インターフェースはどのように機能しますか?
アランストーム

ごめんなさい... @alam Storm ....あなたの質問を誤解しました
Amit Bera

回答:


7

Magento\Framework\App\Router\Base::matchAction
あなたが探している行は次のように設定されている$request->setModuleName($moduleFrontName);と思いますが、完全な方法が必要だったと思います。
このmatchActionメソッドは....などからmatch呼び出されるのと同じクラスのメソッドから呼び出されMagento\Framework\App\FrontController::dispatch()ます。

[編集]
100%確かではありませんが、URLの実際の分割はZend\Uri\Uri::makeRelative()

$pathParts = preg_split('|(/)|', $this->getPath(), null, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);

文字列$moduleFrontNameが引き出される場所を探してい$_GETます。
アランストーム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.