第1回 Smartyの紹介 - Smarty講座

PHP基礎編

yossy先生のSmarty講座

Lecutures on PHP

第1回 Smartyの紹介 (その3)

 このエントリーをはてなブックマークに追加

簡単な使用例

では簡単な例を試してみましょう。以下のPHPコードをDocumentRootにhello.phpという名前で作成してください。12行目の「あなたの名前」と書かれたところは皆さんの名前に置き換えてみてください。

<?php
ini_set
'display_errors');
define'SMARTY_DIR''/usr/local/lib/Smarty-2.6.18/libs/' );
require_once( 
SMARTY_DIR .'Smarty.class.php' );
$smarty = new Smarty();

$smarty->template_dir '/var/www/smarty/templates/';
$smarty->compile_dir  '/var/www/smarty/templates_c/';
$smarty->config_dir   '/var/www/smarty/configs/';
$smarty->cache_dir    '/var/www/smarty/cache/';

$smarty->assign'name''あなたの名前' );
$smarty->display'test.tpl' );
?>

続いて、テンプレートディレクトリに以下のSmartyテンプレートをtest.tplというファイル名で作成してください。

こんにちは、{$name}さん!!
今日は{$smarty.now|date_format:'%Y年%m月%d日'}です。

ここまで出来たら、Webブラウザからhello.phpにアクセスしてみてください。表示された結果とSmartyテンプレートと見比べてみて、何が起こっているのかを推測してみてください。

図2. hello.php の実行結果

テンプレートと画面を見比べてみて、おそらく{$name}というところに何か値が置き換わるんだな、というのが想像できると思います。ではhello.phpの以下の行を書き換えて見てください。'あなたの名前'というところを、お友達の名前に置き換えてみましょう。

$smarty->assign'name''あなたの名前' );

実行結果は変わったでしょうか? このassignというSmartyクラスのメソッドを用いることでテンプレートに変数が渡され、その値がテンプレートで指定された位置に埋め込まれて表示されているのがわかると思います。

また、$smarty.nowというもの(詳細は次回説明します)を使って今の日付が表示できることが推測できるかと思います。

以上、今回は簡単なさわりだけの説明で終わりますが、次回はテンプレートファイルの記述方法についてもう少し詳しい説明を交えていきたいと思います。

参考サイト

http://smarty.php.net/ (Smarty公式サイト)
http://smarty.php.net/manual/ja/ (Smartyドキュメント日本語訳)

  • yossy先生

本名:吉武 正史

パッケージ系ソフトウェア会社で、自然言語処理系の研究やWebアプリケーション、検索連動型広告などの開発に従事。 2006年末にフリーランスとして独立し、現在はPHPによるWeb開発の業務を中心に、コンサルティングや執筆活動などを展開。
サイトURL:http://freeative.jp/

ご意見・感想フォーム

今回の「yossy先生のSmarty講座」への評価・ご意見があればご記入下さい。

評価:
ご意見・感想:

  



Pick Up Q&A

Q
PHPのHTML埋め込み記述について
 このエントリーをはてなブックマークに追加 
A
$_POST["data"] == "男" ? $val = "checked" : $val = "" ; の意味は以下と同じです。 if($_POST["data"] == "男"){ $val = "checked; } e...

>>続きを読む

kende様のご指摘通り、三項演算子を使用する際には、コードの複雑度などを考慮する必要がありますね。書きやすさと共に可読性も追求したいところですね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)