ホームページ  >  記事  >  バックエンド開発  >  Smarty テンプレートの実行原理_PHP チュートリアル

Smarty テンプレートの実行原理_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:31:23962ブラウズ

プログラムのビジネス ロジックをコンテンツ プレゼンテーション ページから分離し、開発速度を向上させるために、PHP はテンプレート エンジンの概念を導入しました。最も人気のある PHP テンプレート エンジンは、その強力なことで知られています。多くの PHP Web 開発者に認められている機能と高速性。この記事では、smarty テンプレート エンジンの動作原理を記録し、理解を深めます。

実際、すべてのテンプレート エンジンの動作原理は似ています。PHP プログラムで通常のマッチングを使用してテンプレート内のタグを PHP コードに置き換え、それによって 2 つを混合して PHP 混合ファイルを作成し、実行するだけです。混合ファイル。それが基本的に起こったことです。このプロセスを説明するために、smarty を例に挙げてみましょう。

たとえば、この Web サイトの記事ページ: http://www.phpernote.com/article.php?id=795

一般的なプロセスは次のとおりです:

HTMLテンプレートページのパーツコード(article.html):

リーリー

PHP ページのロジック部分コード:

リーリー

オブジェクト指向技術を使用してテンプレート関数を実装するカプセル化コードは次のとおりです:

リーリー

注: assign(‘name’,’zhangsan’); この文ではデータはまだ置換されていませんが、受信データは vars[] に保存されており、データは表示時にのみ置換されます。

スマートな処理プロセス:

1. Smarty は最初に php ソースファイルを中間ファイルにコンパイルします

2. キャッシュが有効な場合、コンパイルされたファイルに基づいてキャッシュ ファイルが生成されます

3. コンパイルされたファイルはその後毎回アクセスされます

キャッシュ ファイルが有効で、キャッシュ ファイルが存在し、キャッシュ ファイルの有効期限が切れていない場合は、キャッシュ ファイルに直接アクセスします (最初にキャッシュのプロセスを無視します) コンパイルされたファイル内のタイムスタンプは、テンプレート ファイルの変更を記録しますテンプレートが変更された場合、それを検出して再コンパイルできます。

(コンパイルは静的コンテンツを保存することであり、動的コンテンツは渡されたパラメーターに従って異なります)

コンパイルされたファイルを読み取ると、テンプレート ファイルの読み取りと文字列の置換の時間が節約され、処理が速くなります。

article.phpが初めてリクエストされたときにコンパイルすると、コンパイル済みファイルがコンパイル済みファイルに生成されます。

2度目にarticle.phpをリクエストするときは、テンプレートファイルが変更されているかどうかを確認し、変更がない場合は、コンパイルしたファイルを読み込みます。最終的にファイルが出力されます ;

キャッシュはデフォルトでオフになっています。キャッシュはデータをキャッシュ ファイルに完全に保存するもので、キャッシュ ファイルの有効期限が切れるまで再度キャッシュされることはありません。したがって、smarty は特にリアルタイム性が高い一部の Web サイトには適していません。

上記のテキストは、下の図のように抽象的に理解できます。読者はそれを自分で体験できます。

Smarty テンプレートの実行原理_PHP チュートリアル

キャッシュを検討してください:

smarty プログラムで、キャッシュ ファイルが有効かどうか、およびキャッシュ ファイルの有効期限が切れていないかどうかを確認するには、キャッシュ ファイルに移動します。キャッシュ ファイルが有効でない場合は、テンプレート ファイルに移動します。期限切れの場合は、テンプレート ファイルにも移動します。 興味がありそうな記事

smartyテンプレートのループテーブルはtdで完全には補完されていません
  • smartyテンプレートのforループの拡張プラグイン
  • smartyテンプレートで乱数を生成する方法
  • smartyテンプレートで配列が空かどうかを判断する方法
  • smartyテンプレートでプログラム内でdefineで定義した定数を使う方法
  • smartyテンプレートでphp関数を使う方法とsmartyテンプレートで1つの変数に対して複数の関数を使う方法
  • 最新のタグをsmartyテンプレートの情報に追加
  • smartyテンプレートの保持変数のまとめ

http://www.bkjia.com/PHPjc/764079.html

本当http://www.bkjia.com/PHPjc/764079.html技術記事プログラムのビジネス ロジックをコンテンツ プレゼンテーション ページから分離し、開発速度を向上させるために、PHP はテンプレート エンジンの概念を導入しました。PHP で最も人気のあるテンプレート エンジンは、スマートであると言えます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。