44

PHP はテンプレート言語であるとどこかで読んでいました。テンプレート言語とは正確には何ですか?PHP を 1 つにしているものは何ですか? 他のテンプレート言語は何ですか?

4

4 に答える 4

31

テンプレート言語の背後にある前提は、言語が他のマスター ドキュメント内に「埋め込まれている」ことです。具体的には、平均的なドキュメントでは、ドキュメントの合計サイズはほとんどがテンプレート言語よりもドキュメント ソースです。

2 つの不自然な例を考えてみましょう。

print "This is a simple document. It has three lines."
print "On the second line is my name: " + firstName
print "This is the third line."

This is a simple document. It has three lines.
On the second line is my name: $firstName
This is the third line.

最初の例でわかるように、言語はドキュメント テキストをラップします。2 番目の例では、ドキュメント テキストが最も一般的で、コードはほんのわずかです。

一部のテンプレート言語は、PHP、ASP.NET、Java の JSP など、本格的な汎用言語です。Velocity や FreeMarker (どちらも Java 用のユーティリティ) など、テンプレート用に特別に設計されたより限定的なものもあります。

Microsoft Word などの多くのワード プロセッサには、一般に "差し込み印刷" と呼ばれる独自のテンプレート機能があります。

于 2010-10-26T18:22:17.177 に答える
16

テンプレート言語は基本的に、デザインを実装する目的で後で置き換える必要があるプレースホルダーを定義できる言語です。明らかに、最新のテンプレート言語は、プレースホルダーだけでなく、Web ページのデザインにしばしば必要となるループや条件もサポートしています。テンプレートの継承、マクロ、サンドボックス化など、より高度でありながら有用な手法をサポートするものもあります。

PHP について: PHP 自体は HTML に挿入される可能性があるため、テンプレート言語として使用できます。一方、特に短いタグが有効になっていない場合、PHP は非常に冗長です。

高速で機能豊富なテンプレート エンジンはTwigです。私は賢くそれをお勧めします。より多くの機能 (特にテンプレートの継承) を提供し、より高速です。

于 2010-10-26T18:22:25.057 に答える
7

PHP は必ずしもテンプレート言語ではありませんが、解釈される方法により、そのテストに合格する可能性があります。

PHP ファイルが読み込まれると、PHP ブロック タグ (<?phpおよび?>) 内のコードのみが参照され、残りは出力に渡されます。したがって、.html ファイルは PHP インタープリターで処理できますが、何も起こらず、HTML が出力されます。

HTML ファイルの一部の領域に PHP タグとコードが含まれている場合、解釈され、それらの場所にデータが出力される可能性があります。これはテンプレートと見なすことができます。通常は、出力レイヤーを用意し、それに付随する動的コンテンツを用意するという考え方です。製品ページのテンプレートを作成し、入力変数に基づいて、製品の詳細/画像/その他を 1 つだけテンプレートに入力することができます。

PHP 用の実際のテンプレート エンジン (Smarty for one.. http://www.smarty.net/ ) を参照できます。

私は彼らのファンではありませんでしたが、多くの人がそれで成功を収めています.

于 2010-10-26T18:12:30.637 に答える
0

Smarty 3 で読むかもしれません。

http://www.smarty.net/v3_overview

例えば。現在、テンプレートの継承があります

于 2011-03-01T19:54:43.493 に答える