Windowsマシンに Smarty 3.1.30 を導入
SmartyはPHPのテンプレートエンジンです。Smartyを使うと画面表示処理とデータ操作処理を分けて記述することができます。これによりソースファイルの可読性が向上すると思います。
1.ダウンロード
- Download | Smarty の「Download」>「Smarty 3 latest」にある「3.1.30」リンクをクリックします。
- GitHubのページが表示されますので、「Release 3.1.30」>「Download」にある「source code(zip)」リンクをクリックします。
- 「Smarty-3.1.30.zip」を開くウィンドウが表示されますので、ファイルを保存するを選択して、「OK」ボタンをクリックします。
2.インストール
例: c:\webroot\libs\Smarty-v.e.r\
(例の絶対パスは、利用環境に合わせて調整してください。)
3.Smarty.class.php
ファイルの場所を指定
アプリケーションがSmarty.class.php
ファイルを見つられるように設定します。
その1 PHP定数SMARTY_DIRに定義
PHPの定数「SMARTY_DIR」に、Smarty の libs
ディレクトリへの絶対パスを指定します。絶対パスを指定するとき、最後に / を含める必要があります。
例:define('SMARTY_DIR', 'C:\webroot\libs\smarty-3.1.30\libs/');
(例の絶対パスは、利用環境に合わせて調整してください。)
その2 php.iniのinclude_pathに定義
php.iniのinclude_pathに、Smarty の libs
ディレクトリへの絶対パスを指定します。絶対パスを指定するとき、最後に \ を含める必要があります。
例:include_path = ".;c:\php\includes;c:\webroot\libs\Smarty-3.1.30\libs\"
(例の絶対パスは、利用環境に合わせて調整してください。)
その3 PHPスクリプトの ini_set() に定義
PHPスクリプトにini_set()を使用して、include_pathでSmarty の libs
ディレクトリへの絶対パスを指定します。絶対パスを指定するとき、最後に \ を含める必要があります。
例: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の内容
下の例は利用環境に合わせて調整してください。
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にアクセスすると、テンプレートの内容が表示されます。