Hello Worldを表示する

まずは、お約束の"Hello World"を表示する、プログラムをつくってみます。

テンプレートの準備

最初にテンプレートを作成します。

Smartyの場合、展開する変数を{$key_word}の形で書いてあげます。このkey_wordはphpプログラム側で割り付けます。コメントを書きたい場合は、{* *}で括ります。このコメントは展開後には表示されません。

HelloWorld.tpl
<?xml version="1.0" encoding="EUC-JP"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
  <head>
    {* Smartyのコメントはこのような形式で書くことが出来ます。 *}
    {* コメントは展開されたときに削除されます *}
    <!-- もちろんHTMLのコメントも書けます -->
    <title>{$title}</title>
    <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
  </head>
  <body>
    {* 展開する値は {$key_word}で定義します。 *}
    <h1>{$title}</h1>
    {$contents}
  </body>
</html>  	

プログラムの作成

次に、テンプレートを制御するphpプログラム(hello.php)を作成します。

プログラム側の基本的な処理は、assign関数でテンプレートに表示したい値や定数を設定し、display関数でHTMLを表示すると言うものです。

HelloWorld1.php
<?
require_once './class/Smarty/Smarty.class.php';  // Smarty classを読込む

$Smarty = new Smarty();  // Smarty classの生成

$Smarty->template_dir = './templates';        // Template Fileを置くディレクトリ
$Smarty->compile_dir  = './tmp/templates_c';  // コンパイルされたTemplateが置かれるディレクトリ
$Smarty->cache_dir    = './tmp/cache';        // Templateのキャッシュが格納されるディレクトリ
$Smarty->cache        = 1;                    // cacheを有効にする

// Templateに定義したキーワードへ値に割り付ける 
$Smarty->assign('title', 'Hello Worldの表示');
$Smarty->assign('contents', 'Hello World');

// 指定したテンプレートを展開 
$Smarty->display('HelloWorld1.tpl');
?>	

Smatyは、テンプレートを一度コンパイルしキャッシュしてから展開するため、次からの表示を高速に行う事が出来ます。最初にこれらのワークエリアのディレクトリとして、以下を指定しています。

このサンプルでは、これらのディレクトリをwebサーバのドキュメントルート下に置いていますが、運用時には安全面から言って、webサーバのドキュメントルート以下には置かない方が良いでしょう。(置いてるけど...)


サンプル結果
Last modified: Thu Feb 21 15:03:06 2008 JST