9

私は過去に、Joomlaのx-cart、jobberbase、jomestateコンポーネント、およびその他のJoomlaコンポーネントでもsmartyを使用していました。x-cartでは物事が非常に緊密に結合されており、多くの物事がjobberbaseにあるべきよりも複雑であるように見え、これは賢いためだと感じました。

次に、クライアントから提案されたプロジェクトでYiiを使用します。そして、Yii自体はMVCフレームワークです。だから私はそれで賢く使うべきですか?私はそれのためにsmartyを使うべきだということを知りたいのですが、Yiiでsmartyを使うことのいくつかの長所があるということですか?か否か?それとも、それは単なるオーバーヘッドでしょうか、それともスマートに使用することのいくつかの短所がありますか?私はsmartyを理解しています。しかし、それは時々物事をより複雑にすることになると思います。ですから、皆さんから知りたいのですが、それはフレームワークが悪いために支配的な考えであるか、現実があるので、賢く使うべきですか、それともそれよりも優れたものがありますか?

4

3 に答える 3

11

Yii の前に smarty を使っていた人としては、意味がないと思います。

Smarty は、ロジックとビューを 1 つのファイルに混在させることができなかったので、優れていました。MVC アーキテクチャでは、コントローラー (ロジックを含む) とビューをとにかく分離する必要があると定義しています。smarty テンプレートの場合と同じようにビューを作成することをお勧めしますが、php 構文のみを使用してください。優れた IDE (netbeans など) を使用している場合は、コードも自動的にインデントされます(netbeans のコード形式を参照)

制御構造の代替構文もご覧ください。

Yii作成者の考えられる意見

Yii 自体は、 Qiang Xue の以前のプロジェクトであるPradoから派生しています。Prado には魅力的な言語があり、Yii (すぐに使える) にはありません。これは、Qiang がテンプレート言語は不要であると考えていることを意味していると思います。

スマーティーオーバーヘッド

Smarty テンプレートは、変更ごとに 1 回 PHP にコンパイルされます (キャッシュが有効になっている場合)。これは、ほとんどのオーバーヘッドが最初のリクエストでのみ発生することを意味しますが、コンパイルされたビューが存在し、これはすべてのリクエストに影響します。したがって、smarty にはオーバーヘッドがありますが、おそらく無視できる程度です。

于 2012-04-21T21:16:16.147 に答える
2

Smarty は、他のテンプレート言語と同様に、高価なオーバーヘッドです。

Rasmus Lerdorf が言ったように、PHP はすでにテンプレート エンジンです。PHP に既にある他の制御構造を持つ別の言語を追加する理由はありますか?

テンプレート エンジンは、キャッシュ ロジックが組み込まれているという理由だけで役立ちます。自分でキャッシュ ロジックを構築できない場合は、学習してください。

于 2012-05-13T13:40:10.027 に答える
1

PHP にコンパイルした場合、Smarty はオーバーヘッドになりません。

開発者とデザイナー (Smarty を使用したい) の役割が異なる場合にのみ、Smarty を使用します。

それ以外は、学ぶべきもう1つの言語です。

于 2012-04-21T22:29:05.183 に答える