今さらSmartyの入門vol.2~Hello Worldを表示~

Smartyのphpファイル及びテンプレートファイルを作成し、「Hello World」を表示させます。

phpファイル

格納ディレクトリ:/htdocs/直下
ファイル名:hello.php

<?php

// ルートディレクトリを設定
define("_ROOT_DIR", __DIR__ . "/");
// 関連ファイルを設置するディレクトリ
define("_PHP_LIBS_DIR", _ROOT_DIR . "../php_libs/");
// Smarty本体を設置するディレクトリ
define("_SMARTY_DIR", _ROOT_DIR . "../../frameworks/smarty/libs/");

// Smartyのテンプレートファイルを保存したディレクトリ
define("_SMARTY_TEMPLATES_DIR",   _PHP_LIBS_DIR . "smarty/templates/");
define("_SMARTY_TEMPLATES_C_DIR", _PHP_LIBS_DIR . "smarty/templates_c/");
define("_SMARTY_CONFIG_DIR",      _PHP_LIBS_DIR . "smarty/configs/");
define("_SMARTY_CACHE_DIR",       _PHP_LIBS_DIR . "smarty/cache/");

require_once (_SMARTY_DIR . "Smarty.class.php");

// Smartyクラスをインスタンス化
$smarty = new Smarty();

// Smartyオブジェクトの設定
// テンプレートの格納先
$smarty->template_dir = _SMARTY_TEMPLATES_DIR;
// コンパイル済みのテンプレートの格納先
$smarty->compile_dir = _SMARTY_TEMPLATES_C_DIR;
// 設定ファイルの格納先
$smarty->config_dir = _SMARTY_CONFIG_DIR;
// キャッシュの格納先
$smarty->cache_dir = _SMARTY_CACHE_DIR;

// テンプレート変数のセット
$smarty->assign("testvar", "world");
// テンプレートの呼び出し
$smarty->display("hello.tpl");

テンプレートファイル

特に決まりはありませんが、一般的に拡張子は「.tpl」としていることが多い。
上記phpファイル表示用の「hello.tpl」を「/php_libs/smarty/templates/」に作成する。

格納ディレクトリ:/php_libs/smarty/templates/
ファイル名:hello.tpl

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>テスト</title>
</head>
<body>
Hello {$testvar}!
</body>
</html>

php TIPS の一覧