プログラムのビジネス ロジックをコンテンツ プレゼンテーション ページから分離し、開発速度を向上させるために、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 プログラムで、キャッシュ ファイルが有効かどうか、およびキャッシュ ファイルの有効期限が切れていないかどうかを確認するには、キャッシュ ファイルに移動します。キャッシュ ファイルが有効でない場合は、テンプレート ファイルに移動します。期限切れの場合は、テンプレート ファイルにも移動します。 興味がありそうな記事
smartyテンプレートのループテーブルはtdで完全には補完されていませんhttp://www.bkjia.com/PHPjc/764079.html