collectRoutes()関数を使用してルーターがどのように収集されるかを理解できます。次に、dispatch()メソッドのmatch()関数を使用して、magentoが要求されたURLに対してルーターを照合する方法。しかし、マグネトルーターは特定のアクションコントローラーとアクションメソッドをどのように初期化しますか?controller_front_send_response_beforeおよびcontroller_front_send_response_afterイベントのユーティリティは何ですか?
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()
実際、controller
とaction
トークンの両方を省略できます。この場合、Magentoは拡張機能のメソッドをインスタンス化Mygroup_Myextension_IndexController
して呼び出しようとします。indexAction()