さまざまなモジュールのウィジェットを持つことができるサイドバーでレイアウトを作成したいと思います。ユーザーがログインしていない場合、常に上部にログインウィジェットがあり、ユーザー情報が表示されるとしましょう。スタート アルバム ガイドでは、最新のアルバムなどを表示するために使用できます。サイドバーの使用方法を理解していただければ幸いです。
autoload の構成ファイルと、その構成を読み取り、ページが読み込まれるたびにウィジェットを呼び出す小さなコードで実行できますか?
さまざまなモジュールのウィジェットを持つことができるサイドバーでレイアウトを作成したいと思います。ユーザーがログインしていない場合、常に上部にログインウィジェットがあり、ユーザー情報が表示されるとしましょう。スタート アルバム ガイドでは、最新のアルバムなどを表示するために使用できます。サイドバーの使用方法を理解していただければ幸いです。
autoload の構成ファイルと、その構成を読み取り、ページが読み込まれるたびにウィジェットを呼び出す小さなコードで実行できますか?
Zend Framework 2 でページを構成するには、いくつかの方法があります。
デフォルトでは、ZF2 は単一のレイアウト テンプレートlayout.phtmlを提供します。実際のアプリケーションでは、おそらくいくつかのレイアウトが必要で、特定のコントローラー/アクションのレイアウトを切り替える必要があります。各レイアウトで、異なるウィジェット/サイドバーを表示できます。
部分ビューは、別のビュー テンプレートでレンダリングできる.phtmlビュー テンプレート ファイルです。部分ビューを使用すると、断片のページを構成し、さまざまなビュー テンプレート間でビュー レンダリング ロジックの断片を再利用できます。これは、Partial
ビュー ヘルパーによって実現されます。
はPlaceholder
、HTML コンテンツをキャプチャし、後で使用するために保存できるもう 1 つの便利なビュー ヘルパーです。したがって、Partial
ビュー ヘルパーと同様に、ページを複数の部分で構成できます。
コントローラー プラグインを使用すると、Forward
コントローラーから別のモジュール/コントローラーからアクション (たとえば、ウィジェットをレンダリングするアクション) を呼び出し、そのアクションの出力を取得できます。次に、その出力をページに組み込むことができます。
コントローラー クラスのアクション メソッドを記述する場合、ViewModel
クラスを変数コンテナーとして使用して、コントローラーからビュー テンプレートに変数を渡し、既定のビュー テンプレート名をオーバーライドします。しかし、実際には、ViewModel
クラスは単なる変数コンテナーとビュー テンプレート名以上のものです。実は、レイアウトやページ構成と密接に関係しています。
ビュー モデル クラスの 3 つ目の大きな機能は、複数のビュー モデルをツリーのような構造に結合できることです。ツリー内の各ビュー モデルには、レンダリング プロセスを制御するためにビュー テンプレートに渡すことができるビュー テンプレート名とデータ変数が関連付けられています。
この機能は、レイアウト ビュー テンプレートとコントローラーのアクション メソッドに関連付けられたビュー テンプレートを "結合" するときに、Zend Framework 2 によって内部的に使用されます。ZF2 は、レイアウト テンプレートのビュー モデルを内部的に作成し、layout/layout
ビュー テンプレート名を割り当てます。コントローラーのアクション メソッドがオブジェクトを返すとViewModel
、このオブジェクトは子としてレイアウト ビュー モデルにアタッチされます。
したがって、独自のビュー モデルを既定のビュー モデルにアタッチして、必要な部分のページをレンダリングできます。