Smarty テンプレート エンジンの概要
1, テンプレート エンジンとは
テンプレート エンジン (ここでは特に Web 開発に使用されるテンプレート エンジンを指します) は、ビジネスデータ (コンテンツ) を分離して生成されるユーザー インターフェイスは、特定の形式のドキュメントを生成でき、Web サイトで使用されるテンプレート エンジンは標(biāo)準(zhǔn)の HTML ドキュメントを生成します。テンプレート エンジンは特定の技術(shù)分野に屬さず、クロスドメインおよびクロスプラットフォームの概念です。 Asp にもテンプレート エンジンがあり、PHP にもテンプレート エンジンがあり、C# にもテンプレート エンジンがあり、JavaScript や WinForm の開発でもテンプレート エンジン テクノロジが使用されています。テンプレートエンジンのテンプレートは通常のテキストファイルであり、特別な拡張子は必要なく、.html .htm .twig が使用できます。テンプレート內(nèi)の変數(shù)と式は実行時(shí)に解析されて置換され、タグによってテンプレートのロジックが制御されます。
2、smarty テンプレート エンジン
Smarty は php テンプレート エンジンです。より正確には、ロジック プログラムと外部コンテンツを分離し、管理しやすい方法を提供します。アプリケーション プログラマー
# とアーティストは、ほとんどの場合、同一人物であることができないため、異なる役割を果たしていると言えます。たとえば、ニュースを閲覧するための Web ページを作成している場合、ニュースのタイトル、タグ
列、作成者、コンテンツはすべてコンテンツ要素であり、それらがどうあるべきかは含まれていません。提示されました。 Smarty のプログラムでは、これらは無視されます。テンプレート デザイナーはテンプレートを編集し、
html タグとテンプレート タグの組み合わせを使用して、これらの要素 (HTML テーブル、背景色、フォント サイズ、スタイル シートなど) の出力をフォーマットします。ある日、プログラマーは記事の検索方法を変更したいと考えました (これも
であり、プログラム ロジックの変更です)。この変更はテンプレートのデザイナーには影響せず、コンテンツは引き続き正確にテンプレートに出力されます。同様に、ある日アーティストがやりすぎてインターフェースを完全にやり直したい場合でも、
プログラム ロジックには影響しません。したがって、プログラマはテンプレートを再構(gòu)築せずにロジックを変更でき、テンプレート設(shè)計(jì)者はロジックに影響を與えることなくテンプレートを変更できます。 Smarty はロジックを変換しようとしません
テンプレートから完全に分離します。ロジック プログラムがページの表示のみに使用される場合、テンプレートで問題が発生することはありません。ここでの提案は、アプリケーション ロジックをテンプレートから遠(yuǎn)ざけ、ページ プレゼンテーション
ロジックをアプリケーション ロジックから遠(yuǎn)ざけることです。これにより、コンテンツの管理が容易になり、將來的にはプログラムのアップグレードが容易になります。
3、smatyエンジンの特徴
テンプレートコンパイル。オーバーヘッドを削減するために、Smarty はデフォルトでテンプレートを同等の PHP スクリプトに変換し、後続の呼び出しを高速化します。 Smarty は非常に賢く、コンテンツが変更された後に再コンパイルすることもできます。 ############キャッシュ。 Smarty は、テンプレートをキャッシュするオプション機(jī)能も提供します。キャッシュとコンパイルの違いは、キャッシュをサポートすると、キャッシュされたコンテンツが生成されるだけでなく、個(gè)々のロジックの実行が妨げられることです。たとえば、キャッシュされたドキュメントの有効期間 (5 分など) を指定できます。この期間中は、テンプレートに関連するデータベース クエリを無視できます。
高度に構(gòu)成可能で拡張可能。 Smarty のオブジェクト指向アーキテクチャにより、デフォルトの動作を変更および拡張できます。さらに、構(gòu)成可能性は當(dāng)初からの設(shè)計(jì)目標(biāo)であり、組み込みのメソッドとプロパティを通じてユーザーが Smarty の動作をカスタマイズできる優(yōu)れた柔軟性を提供します。 ############安全性。 Smarty は、設(shè)計(jì)者による意図的または非意図的な破壊からサーバーとアプリケーションのデータを保護(hù)するための多くのセキュリティ機(jī)能を提供します。