5


1

ビューヘルパーに必要なビュースクリプトはどこに配置しますか(Zend_Viewとデフォルトのディレクトリレイアウトを使用)。

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

頻繁に使用する必要があるため、Zend_View_Helperにしたいと思います。 それは簡単です-`$ view→ setHelperPath(APPLICATION_PATHを置くだけです。 '/ views / helpers'、 'C​​as_View_Helper'); `ビューのブートストラップで、すべてがビューヘルパーの読み込みに関して設定されているようです。

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

4 Answer


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;
    }

}


1


いつでも「共有」ビューパスを追加できます

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

また、Zend_Paginatorによる部分ビューレンダリングの処理方法もご覧ください。


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

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


0


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