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

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

Jul 13, 2016 am 10:31 AM
smarty 原理 埋め込む テンプレート

プログラムのビジネス ロジックをコンテンツ プレゼンテーション ページから分離し、開発速度を向上させるために、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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

nohupの機能と原理の解析 nohupの機能と原理の解析 Mar 25, 2024 pm 03:24 PM

nohup の役割と原理の分析 Unix および Unix 系オペレーティング システムでは、nohup はバックグラウンドでコマンドを実行するためによく使用されるコマンドです。ユーザーが現在のセッションを終了したり、ターミナル ウィンドウを閉じたりしても、コマンドはまだ実行され続けています。この記事では、nohup コマンドの機能と原理を詳しく分析します。 1. nohup の役割: バックグラウンドでのコマンドの実行: nohup コマンドを使用すると、ターミナル セッションを終了するユーザーの影響を受けることなく、長時間実行されるコマンドをバックグラウンドで実行し続けることができます。これは実行する必要があります

Struts フレームワークの原則と実践についての深い議論 Struts フレームワークの原則と実践についての深い議論 Feb 18, 2024 pm 06:10 PM

Struts フレームワークの原理分析と実践的な調査 JavaWeb 開発で一般的に使用される MVC フレームワークとして、Struts フレームワークは優れた設計パターンとスケーラビリティを備えており、エンタープライズ レベルのアプリケーション開発で広く使用されています。この記事では、Struts フレームワークの原理を分析し、読者がフレームワークをよりよく理解して適用できるように、実際のコード例を使用してそれを検討します。 1. Struts フレームワークの原理の分析 1. MVC アーキテクチャ Struts フレームワークは MVC (Model-View-Con) に基づいています。

MyBatis のバッチ挿入実装原理の深い理解 MyBatis のバッチ挿入実装原理の深い理解 Feb 21, 2024 pm 04:42 PM

MyBatis は、さまざまな Java プロジェクトで広く使用されている人気のある Java 永続層フレームワークです。その中でも、バッチ挿入は、データベース操作のパフォーマンスを効果的に向上させることができる一般的な操作です。この記事では、MyBatis でのバッチ挿入の実装原理を深く調査し、特定のコード例を使用して詳細に分析します。 MyBatis でのバッチ挿入 MyBatis では、通常、バッチ挿入操作は動的 SQL を使用して実装されます。複数の挿入値を含む S を構築することによって

PPTマスクを追加する方法 PPTマスクを追加する方法 Mar 20, 2024 pm 12:28 PM

PPTのマスキングについては、馴染みのない方も多いと思いますが、PPTを作成する際によく理解せず、自分の好きなものを作るために適当に作っている人が多いため、PPTのマスキングの意味が分からない、理解できないという人も多いと思います。 「このマスクが何をするのか知っています。そして、それが写真の単調さを軽減できることさえ知りません。学びたい友達は、来て学び、あなたの PPT 画像に PPT マスクを追加してください。単調さを減らしてください。」では、PPT マスクを追加するにはどうすればよいでしょうか?以下をお読みください。 1. まず、PPT を開き、空白の画像を選択し、次に [背景形式の設定] を右クリックして単色を選択します。 2. [挿入]をクリックし、ワードアートをクリックし、単語を入力します。 3. [挿入]をクリックし、[図形]をクリックします。

MyBatis ページングプラグインの原理の詳細な説明 MyBatis ページングプラグインの原理の詳細な説明 Feb 22, 2024 pm 03:42 PM

MyBatis は優れた永続層フレームワークであり、XML とアノテーションに基づいたデータベース操作をサポートし、シンプルで使いやすく、豊富なプラグイン メカニズムも提供します。その中でも、ページング プラグインは、よく使用されるプラグインの 1 つです。この記事では、MyBatis ページング プラグインの原理を詳しく説明し、具体的なコード例で説明します。 1. ページング プラグインの原理 MyBatis 自体はネイティブ ページング機能を提供しませんが、プラグインを使用してページング クエリを実装できます。ページング プラグインの原理は主に MyBatis を傍受することです

C++ テンプレートの特殊化が関数のオーバーロードとオーバーライドに及ぼす影響 C++ テンプレートの特殊化が関数のオーバーロードとオーバーライドに及ぼす影響 Apr 20, 2024 am 09:09 AM

C++ テンプレートの特殊化は、関数のオーバーロードと書き換えに影響します。 関数のオーバーロード: 特殊化されたバージョンでは、特定の型のさまざまな実装が提供されるため、コンパイラーが呼び出すことを選択する関数に影響します。関数のオーバーライド: 派生クラスの特殊バージョンは、基本クラスのテンプレート関数をオーバーライドし、関数呼び出し時の派生クラス オブジェクトの動作に影響を与えます。

Linuxのchageコマンドの機能と動作原理の詳細な分析 Linuxのchageコマンドの機能と動作原理の詳細な分析 Feb 24, 2024 pm 03:48 PM

Linuxシステムのchageコマンドは、ユーザーアカウントのパスワード有効期限を変更するコマンドであり、アカウントの最長使用日と最短使用可能日を変更することもできます。このコマンドはユーザー アカウントのセキュリティ管理において非常に重要な役割を果たし、ユーザー パスワードの使用期間を効果的に制御し、システムのセキュリティを強化します。 CHAGE コマンドの使用方法: CHAGE コマンドの基本構文は次のとおりです: chage [オプション] ユーザー名 たとえば、ユーザー「testuser」のパスワードの有効期限を変更するには、次のコマンドを使用できます。

Linux RPM ツールの機能と原理についての詳細な説明 Linux RPM ツールの機能と原理についての詳細な説明 Feb 23, 2024 pm 03:00 PM

Linux システムの RPM (RedHatPackageManager) ツールは、システム ソフトウェア パッケージのインストール、アップグレード、アンインストール、管理を行うための強力なツールです。これは RedHatLinux システムで一般的に使用されるソフトウェア パッケージ管理ツールであり、他の多くの Linux ディストリビューションでも使用されます。 RPM ツールの役割は非常に重要で、システム管理者とユーザーがシステム上のソフトウェア パッケージを簡単に管理できるようになります。 RPM を通じて、ユーザーは新しいソフトウェア パッケージを簡単にインストールし、既存のソフトウェアをアップグレードできます。

See all articles