第1回 Smartyの紹介 - Smarty講座
yossy先生のSmarty講座
Lecutures on PHP
第1回 Smartyの紹介 (その3)
簡単な使用例
では簡単な例を試してみましょう。以下のPHPコードをDocumentRootにhello.phpという名前で作成してください。12行目の「あなたの名前」と書かれたところは皆さんの名前に置き換えてみてください。
<?php
ini_set( 'display_errors', 1 );
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ドキュメント日本語訳)
その他の記事も見る
- 第1回 Smartyの紹介
- 第2回 Smartyを使ってみる(その1:変数編)
- 第3回 Smartyを使ってみる(その2:制御構造編)
- 第4回 Smartyを使ってみる(その3:関数編)
- 第5回 Smartyを使って実用的なページを作ってみる(その1)
- 第6回 Smartyを使って実用的なページを作ってみる(その2)
- 第7回 Smartyの便利な機能を使いこなす(その1:キャッシュ前編)
- 第8回 Smartyの便利な機能を使いこなす(その2:キャッシュ後編)
- 第9回 Smartyの便利な機能を使いこなす(その3:フィルタ編)
- 第10回 Smartyの便利な機能を使いこなす(その4:プラグイン編)
- 第11回 Smartyとフレームワーク(その1:CakePHP編)
- 第12回 Smartyとフレームワーク(その2:Zend Framework編)
- 第13回 次世代のSmarty - Smarty3の紹介
- 第14回 Smartyでケータイサイトを作ってみる
- >>「yossy先生のSmarty講座」一覧ページに戻る
- yossy先生
本名:吉武 正史
パッケージ系ソフトウェア会社で、自然言語処理系の研究やWebアプリケーション、検索連動型広告などの開発に従事。
2006年末にフリーランスとして独立し、現在はPHPによるWeb開発の業務を中心に、コンサルティングや執筆活動などを展開。
サイトURL:http://freeative.jp/






ページのトップへ


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