2012-04-20 8 views
9

これまでJoomlaや他のJoomlaコンポーネントのx-cart、jobberbase、jomestateコンポーネントでもスマートに使いました。私は物事が非常に緊密に結合されていることがわかりました。そして、多くのことがジョブバーベースよりも複雑に思えました。YiiのようなMVCでスマートなテンプレートエンジンを使うべきですか?

今、私はプロジェクトでYiiを使用するつもりですが、クライアントによって提案されます。そしてYii自体はMVCフレームワークです。だから私はそれをスマートに使うべきですか?私はそれをスマートに使うべきであることを知りたいのですが、私はYiiにスマイリーを使用するいくつかのプロがあるのでしょうか?か否か?それともそれは単なるオーバーヘッドか、そこにスマートな使い方のいくつかの問題がありますか?私はスマートに理解している。しかし、時には状況が複雑になると私は思う。だから私はあなたから知りたいのですが、それは悪いフレームワークのせいで支配的な考えであるか、そこには現実があるので、私はスマートなものを使うべきですか、それ以外のものがありますか?

答えて

11

私はYiiの前にスマートな使い方をしていた人として、何の指摘もありません。

Smartyは、ロジックとビューを1つのファイルに混在させないようにしてくれました。 MVCアーキテクチャは、コントローラ(ロジックを含む)とビューを分離する必要があると定義しています。私はあなたがスマートなテンプレートのようにあなたのビューを書くことをお勧めしますが、PHP構文を使用するだけです。あなたが良いIDE(netbeansのような)を使用している場合、あなたのコードも自動的にインデントされます(see code formatting in netbeans)

も強雪以前のプロジェクトでのYii自体がPradoから派生し

のYii作成者のAlternative syntax for control structures

可能な意見を見てみましょう。 Pradoには魅力的な言葉があり、Yii(すぐに使えます)ではQiangがテンプレート言語が不要だと考えているとは思いません。

Smartyのオーバーヘッド

Smartyのテンプレートは(キャッシュが有効になっている場合)の変更ごとに一度PHPに遵守されている、これはオーバーヘッドのほとんどは、最初の要求のために起こることを意味するが、私はまだそこにあると仮定したいですコンパイルされたビューが存在することを確認するために余分な関数呼び出しのオーバーヘッドがあり、これはすべての要求に影響します。スマートになるためのオーバーヘッドがありますが、それはおそらくごくわずかです。

+0

私は別の構文を理解していますが、すでにMVCアーキテクチャを使用している間にスマートの利点がありますか?またはオーバーヘッドがありますか? – Hafiz

+0

それはまったくあなたがスマイリーの利点を考えているものに依存しますか? –

+0

カスタマイズされたアプリケーションでsmartyを使用し、それをフレームワークで使用することとの違いはありません。ビューとロジックを混在させることは、常にIMOの悪い習慣です。しかし、自分自身や他の開発者と厳密にそれを強制する必要がない場合 –

1

PHPにコンパイルするとSmartyがオーバーヘッドにならない。

そのちょうど別の言語を学ぶことよりも

その他(Smartyのを使用したい)、開発者やデザイナーの別の役割がある場合、私は唯一のSmartyを使用します。

2

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

Rasmus Lerdorf氏によると、PHPはすでにテンプレートエンジンです。あなたが既にPHPで持っている、他のコントロール構造を持つ別の言語を追加する理由はありますか?

テンプレートエンジンは、キャッシュロジックを組み込むために便利です。自分でキャッシュロジックを構築できない場合は、それを学んでください。

+1

yiiでキャッシュロジックを使用するためにテンプレートエンジンを使用する必要はありません。アクティブにできるキャッシュにはビルドがあります – darkheir

関連する問題