6

これが私の分岐点です。

Web ページにある種のボタンを表示したいのですが、多くの場所で実行したいと考えています。この「ボタン」は実際には他のページへのリンクのように機能し、すべてのボタン インスタンスは 1 つのページに移動します。

おそらくサイズを除いて、すべてのボタンを同じにしたいと思います。

ここで、ボタンの html で部分スクリプトを使用し、部分ビュー ヘルパーを呼び出してレンダリングするか、呼び出したときにボタンの html を返す Zend_View_Helper を作成する必要がありますか?

どちらに振っても良いと思いますが、どちらが良いと思いますか?

私が見るいくつかのこと:

  1. パーシャルを実行するために Zend_View のクローンのような BIG オブジェクトを作成する必要がないため、ヘルパーの方が優れている可能性があります。

  2. 部分的なスクリプトは、html 担当者にとって作業が簡単になります。

4

3 に答える 3

9

$this->partial() の代わりに $ this->render()を使用してください。

スコープをより細かく制御する必要がある場合にのみ、パーシャルを使用してください。あなたが言ったように、新しい Zend_View インスタンスを作成する必要があるため、多くのオーバーヘッドがあります。render を使用してもそうではありません。

実際の質問に触れると、ビュー ヘルパーよりもレンダー (またはパーシャル) を使用することをお勧めします。これは、デザインの操作がはるかに簡単で、オーバーヘッドが少ないためです。ビューヘルパーはカスタム機能用です。

目安としては、content/html を含めるか、コンテンツを生成して変換を適用するかです。ヘルパーは後者のためのものです。

于 2011-05-25T04:14:51.423 に答える
1

あなたの説明に基づいて、私はあなたのタスクに部分的に使用することをお勧めします。その理由は、ボタンが主にhtmlであり、phpがあまりないように見えるためです。サイズをパーシャルに渡すことができ、それで終わりです。ただし、ボタンの生成により多くのロジック(データベース、認証、またはaclクエリなど)を含めたい場合は、ビューヘルパーをお勧めします。

ps 3番目のオプションは、部分ヘルパーとビューヘルパーの両方を使用することです。この特定のケースではないかもしれませんが、より一般的な意味です。php部分を実行するヘルパーがあり、このヘルパーはpartialを呼び出して目的のhtmlを返します。

于 2011-05-25T05:06:42.463 に答える
1

非常にパラメータ化された値が必要な場合はいつでもビュー ヘルパーを使用する傾向があります。例えば:

echo $this->button('Button Text', '/foo/bar/baz');

以下よりもはるかに優れています。

$this->buttonText = 'Button Text';
$this->buttonUrl = '/foo/bar/baz';
echo $this->render('button.phtml');

また、ビュー ヘルパー内からビュー スクリプトをレンダリングできない理由はありません。

于 2011-05-25T05:58:59.887 に答える