Smartyテンプレートエンジン

2521 ワード

Smartyテンプレートエンジンの特徴
1)速度:Smartyは他のテンプレートエンジンに比べて応答速度が速い2)コンパイル型:テンプレートファイルに初めてアクセスすると、自動的にコンパイルされ、2回目のアクセス時にテンプレートが変更されたかどうかを判断し、変更されていない場合はコンパイルファイルを直接呼び出す.3)キャッシュ・テクノロジー:テンプレート・ファイルに最初にアクセスすると、キャッシュ・メカニズムがオンになると自動的にキャッシュ・ファイルが生成され、2回目のアクセス時にテンプレート・ファイルが変更されず、キャッシュ・ファイルが期限切れになっていない場合は、キャッシュ・ファイルを直接呼び出してより高速な応答速度を得る.コンパイル技術4)プラグイン技術:後期拡張を容易にする5)文の自由:if/elseif/else/endif
リアルタイムで更新されたプロジェクトと小さなプロジェクトはSmartyを採用するのに適していません.
Smarty呼び出しの5ステップ
1)Smartyエントリファイルの読み込み2)Smartyオブジェクトのインスタンス化3)オブジェクトのデフォルト属性または動作の変更(パスの交換、キャッシュのオープン)4)assignメソッドで変数をテンプレートファイル5に割り当てる)出力テンプレートの内容をdisplayメソッドで表示する
Smartyテンプレートエンジンがテンプレートファイルをどのように管理するか
Smartyは、テンプレートファイルの最終修正時間を記録することで、テンプレートファイルが変更されたかどうかを判断します!一般的な知識:どのファイル(電子ドキュメント)にも3つの時間(作成時間、変更時間、アクセス時間)があります.
Smartyの2つの一般的な方法assignとdisplay
assignメソッド:テンプレートファイルに変数を割り当てる呼び出し主にSmartyテンプレートファイルの変数に値を割り当てます.名前/数値ペアのペアを渡すか、名前/数値ペアの関連配列を含めることができます.displayメソッド:出力テンプレートの内容(置換タグ)を表示するsmartyベースのスクリプトは、Smartyエンジンによって参照されるテンプレートの取得と表示を担当するため、1つのスクリプトで1回しか使用できません.
よく使われるいくつかのシステム内蔵変数を開発する
Smartyには、テンプレートファイルで指定した変数を直接取得するために{$smarty.データ型.変数名}を使用する特殊な内蔵変数があります.
$smarty.now:time()関数に相当し、現在のタイムスタンプを取得
$smarty.config:プロファイル内の変数情報の取得
$smarty.Capture:captureラベルで取得したコンテンツ
$smarty.const:phpの定数を取得(共通)
smarty.get.page:s m a r t yに相当する.g e t . p a g e:相当_GET[‘page’]
smarty.post.page:s m a r t yに相当する.p o s t . p a g e:相当_POST[‘page’] smarty.session.id:s m a r t yに相当する.s e s s i o n . i d:相当于_SESSION[‘id’](常用)
foreach内蔵関数
基本構文:
{foreach from=   key=   name=   item=   } 
    {foreachelse} 
{/foreach}

パラメータの説明:from:必須オプション、遍歴する配列要素item:必須オプション、遍歴するたびに、システムは自動的に遍歴結果をitemが指定した変数にname:foreachループ名を入れ、追加属性の操作key:配列のキー名foreachelse:遍歴する配列要素が空の場合、システムは自動的にforeachelseを実行します.
Capture組み込み関数
基本構文:{capture name=‘変数’}キャプチャが必要なコンテンツ{/capture}主な機能:コンテンツをキャプチャしますが、今回は出力しません.出力が必要な場合は、内蔵変数:{$smarty.capture.変数名}を使用して取得できます.
Smartyキャッシュ
キャッシュ・スイッチをオンにする必要があります(デフォルトはオフです).キャッシュ・ファイルのライフサイクルを設定します(必須ではありません).設定しない場合は、デフォルトは3600秒(1時間)のキャッシュ機能です.1サーバの応答速度を速めることができます.2.サーバーの圧力を減らす(I/Oオーバーヘッドの問題)3データベースへのアクセスを減らす
質問:キャッシュファイルはテンプレートから直接生成されますか、それともコンパイルファイルから直接生成されますか.答:キャッシュファイルはコンパイルファイルから直接生成されます!
ここでまた問題があります.もし私がデータベースの内容を変更して、表示内容を更新したいのですが、キャッシュが消滅する時間になっていない場合は、腫れていますか?$smarty->clearCache(“index.tpl”); 上記のclearCacheはこの問題を解決することができ、データを更新した後、clearCacheを呼び出してキャッシュをクリアすればよい.
実際のプロジェクト応用では、キャッシュ技術や静的化技術を採用している場合、バックグラウンドデータの更新や調整がある場合は、キャッシュファイルや静的ファイルを再生成する必要があります.