-2

collectRoutes()関数を使用してルーターがどのように収集されるかを理解できます。次に、dispatch()メソッドのmatch()関数を使用して、magentoが要求されたURLに対してルーターを照合する方法。しかし、マグネトルーターは特定のアクションコントローラーとアクションメソッドをどのように初期化しますか?controller_front_send_response_beforeおよびcontroller_front_send_response_afterイベントのユーティリティは何ですか?

4

1 に答える 1

1

ああ、これはとても簡単です(私があなたの質問を正しく理解していれば)。

URLには常にroute/controller/action構造があります。

したがって、Magentoが解決するrouteと(どのように機能するかを理解したと言った)controller、コントローラーのクラス名の最初の部分としてトークンを使用するだけです。したがって、たとえば、コントローラトークンがmymoduleであり、拡張プレフィックスがMygroup_Myextensionである場合、インスタンス化を試みますMygroup_Myextension_MymoduleController。つまり、ファイルはに配置する必要がありますapp/code/[community-or-local]/Mygroup/Myextension/controllers/MymoduleController.php

次に、Magentoはactionトークンを使用して、クラス内のメソッドを呼び出します。したがって、actionトークンがMagentoとして設定されている場合、メソッドmyactionを呼び出そうとします。myactionAction()

実際、controlleractionトークンの両方を省略できます。この場合、Magentoは拡張機能のメソッドをインスタンス化Mygroup_Myextension_IndexControllerして呼び出しようとします。indexAction()

于 2012-12-02T13:39:49.263 に答える