サーバー亭
メールフォーム無料・有料提供 Webアプリ制作 |
テンプレートエンジン(Smarty)
テンプレートエンジンとは、最終的な出力レイアウトの生成に特化したライブラリであり、プログラム上で生成された値とレイアウト定義ファイル(テンプレート)を結び付けます。
メリット テンプレートエンジンを導入すれば、テンプレートエンジンの制約がそのままレイアウトとビジネスロジックとの境界線になるので、分離の基準を強制することができる。 テンプレートエンジンの構文仕様は出力に特化しているため、膨大な関数やクラスライブラリを提供するPHPよりも遥かにシンプルです。 たとえば、${変数名}と記述するだけで変数値を出力できる。 注目すべきポイント Smarty Install
Smartyは、PHPスクリプトから構成されるライブラリです。特別なインストーラはなく、必要なスクリプトファイルを所定のディレクトリーに配置するだけで利用できます。
http://smarty.net からダウンロードできます。
サーバにアップロードして、展開してください。
以下のディレクトリーを作成します。
Smartyの基本動作
Smarthの中核機能を担うのは、Smartyクラスです。
テンプレートエンジンの挙動は、Smartyクラスの各プロパティを設定することで制御できます。 テンプレートファイルの格納場所を指定したり、コンパイル済みのテンプレートの格納先を指定したりします。 さらに、下記の例ではassignメソッドを使用してテンプレートの変数を設定しています。テンプレート変数とは、テンプレートファイルから参照可能な変数のことを言います。最後にdisplayメソッドで表示したいテンプレートファイルを呼び出して完了します。 <?php require_once('./libs/Smarty.class.php'); $o_smarty = new Smarty(); $o_smarty->template_dir = './templates/'; $o_smarty->compile_dir = './templates_c/'; $o_smarty->assign('name','Aya'); $o_smarty->display('helloSmarty.tpl'); ?> helloSmarty.tpl <html> <head> <title>Rynn</title> </head> <body> Hello, {$name}!! </body> </html> テンプレートの構造
テンプレートファイルの構造について説明します。
テンプレートファイルは次のような要素から構成されます。
{$変数名}の形式で表すことができます。 変数は、PHPスクリプトから生成された「テンプレート変数」とSmartyが内部的に生成する「予約変数」とに分類されます。 テンプレート変数は、さらにスカラ値、単純配列、連想配列、オブジャクトに分類することができます。
予約変数{$smarty}は、Smartyによって自動的に割り当てられる変数であり、この予約変数の確保するためにPHPスクリプトを記述する必要はありません。 以下にその1部を紹介いたします。 予約変数{$smarty}を介して取得できる情報
変数や関数の戻り値を加工するための簡易命令です。 {$変数名|修飾子[:"パラメータ"[:...]} 簡単な文字列の加工を行ったり、変数の構成情報(文字列長やパラグラフの数など)をテンプレート上で取得/表示するために用います。 Smartyで利用できる主な修飾子
条件分岐や繰り返し処理、外部テンプレート/設定ファイルのインポートなど、テンプレートの挙動を制御するたもの基本機能を提供します。 {関数[属性1="値1" [...]]}~[/関数} 関数は、配下にコンテンツを持たない「テンプレート関数」と配下にコンテンツを持つ「ブロック関数」とに分類できます。 また、ほとんどの関数にはそれ自身の動作を制御するための補助的なパラメータがあります。 これを「属性」と言い、属性には「数値」、「文字列」、「true/false」、「変数が混在する動的な値」を指定することができます。 それぞれの型に応じて属性の表記が微妙に異なるので、注意が必要です。 データ型に応じた属性の記述方法
テンプレートファイルでは、PHPで利用可能な演算子を用いて、変数値に対して演算処理を行うことが可能です。 一般的な代数演算子のほか、{if}関数では比較演算子を利用することができます。 {*~*}で囲まれたブロックを指します。コメントブロックには、テンプレートエンジンの解析対象とならない備考やメモ情報を記述します。 |
Copy Right Server-tei(c) All Rights Reserved |特定商取引法に基づく表示 |個人情報の保護
|