2

Zend Framework 1.6を使用しているため、Zend_Applicationを使用していません。

シンプルで通常のViewHelper(Zend_View_Helper_Abstractを拡張)があります。アクションコントローラのビューに追加する限り、完全に正常に機能します。しかし、私はすべてのモジュールのすべてのビューでそれを使用できるようにしたいと思います。ブートストラップファイルでグローバルビューを取得してこれを行うのは簡単なはずだと思いました。

$view->addHelperPath(PATH_VIEW_HELPERS, 'RT_View_Helper_');

しかし、ブートストラップファイルで$viewオブジェクトを取得できないようです。私も試しました

$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
if (null === $viewRenderer->view) {
    $viewRenderer->initView();
}
$view = $viewRenderer->view; 
$view = new Zend_View(array('encoding'=>'UTF-8'));
$view->addHelperPath(PATH_VIEW_HELPERS, 'RT_View_Helper_');

しかし、それでもうまくいきません。Boostrap(フロントコントローラープラグイン)のpreDispatch()とpostDispatch()に入れてみました。

誰かがこれを行う方法について何か考えがありますか?とてもシンプルなはずなのに、2日経っても解決策が見つかりませんでした。

みんなありがとう:)アリ

4

3 に答える 3

4

あなたが使用しているZend_Layoutなら、これらの線に沿った何かがあなたを得るはずですZend_View

$layout = Zend_Layout::getMvcInstance();
$view = $layout->getView();
// set helpers, doctype, etc...
于 2010-08-20T06:26:47.610 に答える
0

問題を理解できませんが、私の意見では、ビューオブジェクトをZend_Registryに登録できます。

Zend_Registry::set('view', new Your_view);
于 2010-08-19T21:59:32.140 に答える
0

「setup.php/bootstrap.phpまたはその他のファイル」で次の操作を実行できます

$view = new Zend_View();
// add Helper Path 
$view->setHelperPath('/path/to/more/helpers', 'My_View_Helper');
于 2010-08-20T08:11:58.187 に答える