1

ほとんどのプロジェクトでは、複数のレイアウトスクリプトを使用しています。

ページ固有ではなく、レイアウト固有のデータがレイアウトに必要になる場合があります。ただし、どのレイアウトが使用されるかはページ固有です。

したがって、ブートストラップまたはアクションコントローラーは、レイアウトを選択するのに適した場所です。しかし、私見では、特定のレイアウトが期待するデータを挿入するのに適した場所で はありません。

私が考えることができる他の唯一の場所は、レイアウトビュースクリプト自体にビジネスロジックを記述することです。それは私もしたくないことですが:)

レイアウト固有のビジネスロジックはどこに記述しますか?

-更新

レイアウト固有のビジネスロジックは次のようになります。

  • 現在ログインしているユーザーのユーザー名
  • ユーザーの受信トレイにある新しいメッセージの量
  • ランダム「ご存知でしたか..?」ヒント
4

1 に答える 1

2

このような作業は、ViewHelperから行うのが最適です。

class ViewHelper_RandomTip
{
    public function randomTip()
    {
         $tip = TipsModel::getRandom();
         return "<div><h1>Random Tip</h1><p>$tip</p></div>");
    }
    // ...
}

次に、レイアウトで、

echo $this->randomTip();

これはどこでも実行することを意図していないサンプルコードであることに注意してください。ヘルパーからモデルにアクセスする方法とコンテンツを返す方法は、完全にあなた次第です。また、ViewHelpersをレイアウトに登録する手段を見つける必要があります。そして、あなたに言う人がいるでしょう、あなたはビューからモデルにアクセスできないかもしれません(これは間違っています)

これらの関連する質問も参照してください。

さらに詳しい情報については、 ZendFrameworkがこの種の作業をどのように行うかをご覧ください

于 2010-02-02T12:39:59.073 に答える