0

私は以下についていくつかのインプットが欲しいです:

  1. どのコントローラー/アクションが実行されるかに関係なく、いくつかのビューを体系的にレンダリングしたいと思います(これらのビューのレイアウトから$ this-> renderを呼び出すことができます)。
  2. ただし、これらのビューで使用されるコンテンツは、動的に生成された同じデータに基づいており、その背後にあるコードは非常に複雑であるため、明らかな最適化/パフォーマンスの問題のためにビュー内にロジックを配置することはできません。
  3. 各コントローラーで$this->_ helper-> actionStackを使用して、ビューのデータが準備される別のコントローラーを呼び出すことができますが、既存のコントローラーを変更せずに実行したい

私が欲しいものは私のアプリケーションに共通しているので、私はブートストラップに何かを入れたくなりますが、私は何をすべきかわからないだけです。

4

1 に答える 1

1

それがView Helpersの目的です。
ビュー ヘルパーでは、(モデルまたはサービス レイヤーを介して) データをフェッチし、出力用に準備できます。

<?php
class View_Helper_Foobar extends Zend_View_Helper_Abstract
{
    protected $_data;

    public function foobar()
    {
        if (null !== $this->_data) {
            $this->_data = some_expensive_data_getter();
        }

        return $this;
    }

    public function __toString()
    {
        return $this->view->partial('foobar.phtml', array('data' => $this->_data));
    }
}
于 2010-07-30T15:10:21.197 に答える