プログラミングノート

プログラミングの備忘録です

Windowsマシンに Smarty 3.1.30 を導入

 SmartyPHPのテンプレートエンジンです。Smartyを使うと画面表示処理とデータ操作処理を分けて記述することができます。これによりソースファイルの可読性が向上すると思います。

 

1.ダウンロード

  1. Download | Smarty の「Download」>「Smarty 3 latest」にある「3.1.30」リンクをクリックします。
  2. GitHubのページが表示されますので、「Release 3.1.30」>「Download」にある「source code(zip)」リンクをクリックします。
  3. Smarty-3.1.30.zip」を開くウィンドウが表示されますので、ファイルを保存するを選択して、「OK」ボタンをクリックします。

 

2.インストール

  1. ダウンロードしたzipファイルを解凍します。
  2. libs ディレクトリを作成します。
  3. 解凍してできた「Smarty-3.1.30」をlibs ディレクトリに配置します。

 例: c:\webroot\libs\Smarty-v.e.r\

 (例の絶対パスは、利用環境に合わせて調整してください。)

 

 

3.Smarty.class.php ファイルの場所を指定

アプリケーションがSmarty.class.php ファイルを見つられるように設定します。

 

その1 PHP定数SMARTY_DIRに定義

PHPの定数「SMARTY_DIR」に、Smartylibsディレクトリへの絶対パスを指定します。絶対パスを指定するとき、最後に / を含める必要があります。

 例:define('SMARTY_DIR', 'C:\webroot\libs\smarty-3.1.30\libs/');

 (例の絶対パスは、利用環境に合わせて調整してください。)

 

その2 php.iniのinclude_pathに定義

php.iniのinclude_pathに、Smartylibs ディレクトリへの絶対パスを指定します。絶対パスを指定するとき、最後に \ を含める必要があります。

 例:include_path = ".;c:\php\includes;c:\webroot\libs\Smarty-3.1.30\libs\"

 (例の絶対パスは、利用環境に合わせて調整してください。)

その3 PHPスクリプトの ini_set() に定義

PHPスクリプトにini_set()を使用して、include_pathでSmartylibs ディレクトリへの絶対パスを指定します。絶対パスを指定するとき、最後に \ を含める必要があります。

 例:ini_set('include_path', 'c:\webroot\libs\Smarty-3.1.30\libs\');

 (例の絶対パスは、利用環境に合わせて調整してください。)

 


4.Smartyディレクトリを 作成

templatesディレクトリtemplates_cディレクトリconfigsディレクトリ、cacheディレクトリを作成します。

  • Smartyディレクトリは Smarty ライブラリによってのみアクセスされますので、ドキュメントルートの ディレクトリを作成することが推奨されています。
  • ディレクトリの名前は、Smarty クラスのプロパティ $template_dir、$compile_dir、$cofig_dir、$cache_dirに定義して変更することができます。

 

 

 5.テンプレートの作成

テンプレートファイル (拡張子が.tplのファイル) を作成し、template_dirディレクトに配置します。

(テンプレートファイルの文字コードをuft8としました。)

 

▼テンプレートファイルの内容

  • 画面に出力する内容(HTMLなど)を記述します。
  • 「{変数名}」と記述すると、変数値を表示します。

 例:「こんにちは、{$name}さん」

 

 

6.index.phpの作成

ドキュメントルートの下に任意のディレクトリを作成し、そのディレクトリにindex.php を配置します。

 

▼index.phpの内容

下の例は利用環境に合わせて調整してください。

 

// 1.Smarty.class.phpの読み込み

require_once(SMARTY_DIR . 'Smarty.class.php');

 

// 2.Smartyオブジェクトの生成

$smarty = new Smarty();

// 3.(任意)SmartyディレクトリをSmartyクラスのプロパティに設定
$smarty->template_dir = "c:/test/templates/";
$smarty->compile_dir  = "c:/test/templates_c/";
$smarty->config_dir   = "c:/test/configs/";
$smarty->cache_dir    = "c:/test/cache/";

 

// 4.(任意)変数に値の割り当て
$smarty->assign('name','テスト');

 

// 5.テンプレートの指定
$smarty->display('index.tpl');

 

7.テンプレート表示

 index.phpのURLにアクセスすると、テンプレートの内容が表示されます。

 

 

参照

PHP Template Engine | Smarty

Smarty3 マニュアル | Smarty