0

さまよっていました..たとえば、製品データの配列に基づいてメニューを作成する必要がある場合、またはたとえば、一連のスペック シートを作成する必要がある場合..つまり、配列をレンダリングする必要がある場合、(からパフォーマンスの観点から):

a. すべての html を php で作成し (たとえば、コントローラーで)、html を保存した変数を smarty に渡します。

b. php で何もせず、配列を smarty に渡し、テンプレート内で関連する html をビルドしますか?

4

1 に答える 1

1

Smarty テンプレートは、最初に処理されるときに PHP コードにコンパイルされるため、Smarty 構文で表現するのが困難な特殊な処理を行っていない限り、パフォーマンスは非常に似通ったものになる可能性があります。

この質問は「時期尚早の最適化」にもよく似ています。何かがパフォーマンスの問題である可能性があると前もって想定し、測定可能な結果が得られる前にそれを「最適化」することにエネルギーを費やしています。このエネルギーは、後で実際に測定するパフォーマンスがあり、コードのどの部分が最大の改善をもたらすかを見つけることができるときに保存することをお勧めします.

それがあなたの選択であろうと、使用しているアプリケーションの選択であろうと、Smarty のようなテンプレート言語の考え方は、すべての表示ロジックが含まれているため、表示ロジックを「コントローラー」に移動することです (これはおそらく「ビュー」にもなります)。 " MVC の考え方では) 分離のポイントを無効にします。

Smarty が本当に嫌いなら、すべての出力を HTML に前処理し、単一の変数を Smarty テンプレートに渡す独自の「ビュー」レイヤーを作成することもできますが、それがあなたの求めているものかどうかはわかりません。

于 2013-09-07T00:18:40.177 に答える