3

さまざまなモジュールのウィジェットを持つことができるサイドバーでレイアウトを作成したいと思います。ユーザーがログインしていない場合、常に上部にログインウィジェットがあり、ユーザー情報が表示されるとしましょう。スタート アルバム ガイドでは、最新のアルバムなどを表示するために使用できます。サイドバーの使用方法を理解していただければ幸いです。

autoload の構成ファイルと、その構成を読み取り、ページが読み込まれるたびにウィジェットを呼び出す小さなコードで実行できますか?

4

1 に答える 1

0

Zend Framework 2 でページを構成するには、いくつかの方法があります。

1. レイアウトの切り替え

デフォルトでは、ZF2 は単一のレイアウト テンプレートlayout.phtmlを提供します。実際のアプリケーションでは、おそらくいくつかのレイアウトが必要で、特定のコントローラー/アクションのレイアウトを切り替える必要があります。各レイアウトで、異なるウィジェット/サイドバーを表示できます。

2.部分的なビュー

部分ビューは、別のビュー テンプレートでレンダリングできる.phtmlビュー テンプレート ファイルです。部分ビューを使用すると、断片のページを構成し、さまざまなビュー テンプレート間でビュー レンダリング ロジックの断片を再利用できます。これは、Partialビュー ヘルパーによって実現されます。

3. プレースホルダー ビュー ヘルパー

Placeholder、HTML コンテンツをキャプチャし、後で使用するために保存できるもう 1 つの便利なビュー ヘルパーです。したがって、Partial ビュー ヘルパーと同様に、ページを複数の部分で構成できます。

4. フォワードコントローラープラグイン

コントローラー プラグインを使用すると、Forwardコントローラーから別のモジュール/コントローラーからアクション (たとえば、ウィジェットをレンダリングするアクション) を呼び出し、そのアクションの出力を取得できます。次に、その出力をページに組み込むことができます。

5.ページ構成にビューモデルを使用する

コントローラー クラスのアクション メソッドを記述する場合、ViewModel クラスを変数コンテナーとして使用して、コントローラーからビュー テンプレートに変数を渡し、既定のビュー テンプレート名をオーバーライドします。しかし、実際には、ViewModelクラスは単なる変数コンテナーとビュー テンプレート名以上のものです。実は、レイアウトやページ構成と密接に関係しています。

ビュー モデル クラスの 3 つ目の大きな機能は、複数のビュー モデルをツリーのような構造に結合できることです。ツリー内の各ビュー モデルには、レンダリング プロセスを制御するためにビュー テンプレートに渡すことができるビュー テンプレート名とデータ変数が関連付けられています。

この機能は、レイアウト ビュー テンプレートとコントローラーのアクション メソッドに関連付けられたビュー テンプレートを "結合" するときに、Zend Framework 2 によって内部的に使用されます。ZF2 は、レイアウト テンプレートのビュー モデルを内部的に作成し、layout/layoutビュー テンプレート名を割り当てます。コントローラーのアクション メソッドがオブジェクトを返すとViewModel、このオブジェクトは子としてレイアウト ビュー モデルにアタッチされます。

したがって、独自のビュー モデルを既定のビュー モデルにアタッチして、必要な部分のページをレンダリングできます。

于 2014-01-28T03:31:50.887 に答える