PHP はテンプレート言語であるとどこかで読んでいました。テンプレート言語とは正確には何ですか?PHP を 1 つにしているものは何ですか? 他のテンプレート言語は何ですか?
4 に答える
テンプレート言語の背後にある前提は、言語が他のマスター ドキュメント内に「埋め込まれている」ことです。具体的には、平均的なドキュメントでは、ドキュメントの合計サイズはほとんどがテンプレート言語よりもドキュメント ソースです。
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 などの多くのワード プロセッサには、一般に "差し込み印刷" と呼ばれる独自のテンプレート機能があります。
テンプレート言語は基本的に、デザインを実装する目的で後で置き換える必要があるプレースホルダーを定義できる言語です。明らかに、最新のテンプレート言語は、プレースホルダーだけでなく、Web ページのデザインにしばしば必要となるループや条件もサポートしています。テンプレートの継承、マクロ、サンドボックス化など、より高度でありながら有用な手法をサポートするものもあります。
PHP について: PHP 自体は HTML に挿入される可能性があるため、テンプレート言語として使用できます。一方、特に短いタグが有効になっていない場合、PHP は非常に冗長です。
高速で機能豊富なテンプレート エンジンはTwigです。私は賢くそれをお勧めします。より多くの機能 (特にテンプレートの継承) を提供し、より高速です。
PHP は必ずしもテンプレート言語ではありませんが、解釈される方法により、そのテストに合格する可能性があります。
PHP ファイルが読み込まれると、PHP ブロック タグ (<?php
および?>
) 内のコードのみが参照され、残りは出力に渡されます。したがって、.html ファイルは PHP インタープリターで処理できますが、何も起こらず、HTML が出力されます。
HTML ファイルの一部の領域に PHP タグとコードが含まれている場合、解釈され、それらの場所にデータが出力される可能性があります。これはテンプレートと見なすことができます。通常は、出力レイヤーを用意し、それに付随する動的コンテンツを用意するという考え方です。製品ページのテンプレートを作成し、入力変数に基づいて、製品の詳細/画像/その他を 1 つだけテンプレートに入力することができます。
PHP 用の実際のテンプレート エンジン (Smarty for one.. http://www.smarty.net/ ) を参照できます。
私は彼らのファンではありませんでしたが、多くの人がそれで成功を収めています.