PHPの勉強を引き続き。
Windows版XAMPPでSmartyを使えるようにしました。

SmartyはPHPのためのテンプレートエンジンです。これによりアプリケーションの ロジックとコンテンツを分離して管理できるようになり、メンテナンス性が向上します。またデザイナーとプログラマーとの分業ができるといわれています。

今回のはそのWindows版XAMPPへの導入。

1.Smartyから最新の安定版Smarty-2.6.18.tar.gzをダウンロード。

2.適当なフォルダに置いて解凍。
Windowsでtar.gz形式の圧縮ファイルを解凍するのでそれに対応した解凍ソフトウェアが必要。
僕はLhaplus(vector)を使いました。

3.解凍したフォルダのlibsフォルダの中身をそっくりそのままphpをインストールしたフォルダにコピーします。
※わかりやすければどこでもいいです。

4.php.iniの「include_path」が記載されている行を探し、「3」でlibsフォルダの中身を置いたパスを記載します。

; Windows: “\path1;\path2″
include_path = “.;C:\XAMPP\php\smarty;C:\XAMPP\php\pear\”

include_pathの設定はけっこうポイントでここを間違えるとSmartyがうまく動作してくれません。
僕も何度もつまりました。

pearも事前にインクルードしているんですが(いわゆるパスが通った状態)
複数記述するときは「;」でつなぎます。

5.cache,configs,templates,templates_cの4つのフォルダを作ります。
実運用上はApacheのドキュメント・ルートでないところに配置するのがいいようです。

6.PHPの設定を変更しているのでそれを反映するためApacheを再起動します。

簡単なサンプルを作成

この本に出ていたサンプルです。

改訂新版 基礎PHP 改訂新版 基礎PHP
WINGSプロジェクト 山田 祥寛

インプレス 2004-09-22
売り上げランキング : 179211

Amazonで詳しく見る by G-Tools

以下のコードを入力してsample.phpというファイル名でApacheのドキュメントルート上におきます。

<?php
require_once(”Smarty.class.php”);
$smarty_obj = new Smarty();
$smarty_obj ->template_dir = “./templates”;
$smarty_obj ->compile_dir = “./templates_c”;
$smarty_obj ->assign(”t_time”, gmdate(”Y:m:d H:i:s”, time() + 9*3600));
$smarty_obj ->display(”sample.tpl”);
?>

本の記述例では
require_once(”Smarty/libs/Smarty.class.php”);
となっていますが、今回include_pathを変更していますので上記のようにしています。

同様に以下のコードを入力してsample.tplというファイル名でtemplatesフォルダの下におきます。

<html>
<head><title>smarty-sample</title></head>
<body>
現在の時間は、{$t_time}です。
</body>
</html>

ブラウザからsample.phpを表示します。
以下は表示例です。

Smartyのサンプル表示

Smartyが導入できました。

参考にしたサイト

Smarty(マニュアル日本語訳)
WindowsへSmartyをインストールする from bnote







関連記事(試験運用中)

  • No related posts




  • コメント/トラックバック:0 個 »

    トラックバックURL: http://blackpepper.oops.jp/wp/archives/2169/trackback

    この記事にはまだコメントがついていません。

    コメントをどうぞ

    コメント、トラックバックは確認後に表示されます。しばらくお待ちくださいね。

    段落や改行は自動挿入です。メールアドレスはサイト上では非表示です。
    使用できる HTML タグ: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>