5

アクセス制御リストのエディターであるアプリケーションの比較的複雑な部分があります。いくつかの場所で再利用する必要があり、すべての ajax-y などをロードできるようにしたいと考えています。

頻繁に使用する必要があるため、Zend_View_Helper にしたいと考えています。これは簡単$view->setHelperPath(APPLICATION_PATH . '/views/helpers', 'Cas_View_Helper');です。ビューのブートストラップを入れるだけで、ビュー ヘルパーの読み込みに関してすべてが設定されているように見えます。

ただし、実際にはビュー スクリプトを使用してヘルパーを出力する必要があります。それを置くべき標準的な場所はありますか?

4

4 に答える 4

8

通常、ヘルパーがビュー スクリプトを必要とする場合、このスクリプトはパーシャル内に配置されます。そのパーシャルの場所は、ディレクトリ構造によって異なる場合がありますが、標準は次のとおりです。

application[/modules/name]/views/scripts/partials/

次のようなヘルパーを作成できます。

class Cas_View_Helper_Foo extends Zend_View_Helper_Abstract 
{
    protected $partial = 'partials/foo.phtml';
    protected $view = null;

    // Render the partial here
    public function foo($params)
    {
        $this->view->partial($this->partial, $params);
    }

    // Specifying this method Zend_View will inject the view here
    public function setView(Zend_View_Interface $view)
    {
        $this->view = $view;
    }

}
于 2010-10-19T16:22:33.003 に答える
1

を使用して、いつでも「共有」ビューパスを追加できます

$view->addScriptPath('/path/to/shared/view/scripts')

http://framework.zend.com/manual/en/zend.view.controllers.html#zend.view.controllers.script-paths .

また、Zend_Paginator が部分的なビューのレンダリングを処理する方法も見てください。

于 2010-10-19T04:37:44.233 に答える
1

これを行う方法について、1 つの標準、推奨事項、または確定されたものはありません。ZF は柔軟性に優れているため、アプリケーションに最適なものは何でも自由に選択できます。この回答を使用して、現在のソリューションを比較します。

ケインの答えは、ほとんどの人が最終的にたどり着くと私が感じる解決策です。個人的には、独自のひねりapplication[/modules/name]/views/scripts/helpers/{your helper}/blah.phtmlがあります。これにより、競合する部分的な名前を持たず、ビュー ヘルパー ファイルに簡単に移動できます。

これはまだモジュール性に欠けていますが、少なくとも 2 か所にビュー ヘルパーをインストールする必要があります。または、非常に一般的な別の解決策は次のとおりです。

application[/modules/name]/views/helpers/{your helper}.php
application[/modules/name]/views/helpers/{your helper}/{view scripts}.phtml

これにより、ビューヘルパーのモジュール性が少し向上します。

于 2010-10-22T19:47:34.060 に答える
0

ビュー フォルダーでは、フォルダー ヘルパーを作成します。ここにビュー ヘルパーを配置します。

于 2010-10-19T16:04:44.667 に答える