web-dev-qa-db-ja.com

テンプレート言語とは何ですか?

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

33
Nandini Bhaduri

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

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などの多くのワードプロセッサには、一般に「差し込み印刷」と呼ばれる独自のテンプレート機能があります。

23
Will Hartung

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

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

高速で機能豊富なテンプレートエンジンは Twig です。かっこいいよりおススメです。より多くの機能(特にテンプレートの継承)を提供し、高速です。

11
NikiC

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

PHPファイルが読み取られるとき、PHPブロックタグ(<?phpおよび?>)が見られ、残りは出力に渡されます。したがって、.htmlファイルはPHPインタプリタによって処理される可能性があり、何も起こらず、HTMLが出力されます。

HTMLファイルの一部の領域にPHPタグとコードが含まれている場合は、解釈され、おそらくそれらの場所にいくつかのデータが出力されます。これはテンプレートと考えることができます。通常、出力レイヤー、そしてそれに伴う動的コンテンツを持つ製品ページテンプレートを作成し、いくつかの入力変数に基づいて、単一の製品の詳細/画像などをテンプレートに入力することができます。

実際に見ることができるPHP(Smarty for one .. http://www.smarty.net/ ))の実際のテンプレートエンジンがあります。

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

7
Fosco

あなたはSmarty 3で読むかもしれません。

http://www.smarty.net/v3_overview

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

1
joe