Simplate は、PHP 4.3 以降が動作しているウェブサーバを必要とします。ただし、PHP5 を推奨します (現在は、PHP4 系の開発環境を用意していません)。php extension がコンパイルできるツールが存在する必要があります (ソースから PHP をコンパイルしている場合、多分既に環境が整っています)。
Simplate は php extension です。以下の手順でコンパイル & インストールすることができます。
上記の手順は、次のようなコマンドによって実行します。
$ wget 'http://sourceforge.jp/frs/redir.php?m=iij&f=%2Fsimplate%2F43613%2Fsimplate-X.Y.Z.tar.gz' $ tar zxvf simplate-X.Y.Z.tar.gz $ cd simplate-X.Y.Z $ phpize $ ./configure --enable-simplate $ make ( or gmake) $ sudo make (or gmake) install
次のようなコマンドを実行して、enabled が返ってきていれば、インストールに成功しています。
$ php -i | grep -i 'simplate' -A 1 simplate simplate support => enabled Version => X.Y.Z
ブラウザからのリクエストで phpinfo() を実行し、enabled が存在しない場合は Web サーバを再起動したか確認してください。
今度はあなたのアプリケーション内に Simplate 用のディレクトリをセットアップしましょう。
インストール例として、ゲストブックアプリケーションの Simplate 環境をセットアップしてみます。 私たちはディレクトリの命名規則の目的についてのみ取り上げました。 例のアプリケーション名を guestbook/ からあなたのアプリケーション名に置き換えれば、同様の環境を使用できます。
/web/www.example.com/
guestbook/
template/
index.tpl
template_c/
htdocs/
index.php
あなたは Web サーバのドキュメントルートの位置を知っている必要があります。 例ではドキュメントルートは /web/www.example.com/guestbook/htdocs/ とします
ドキュメントルート下には最低1つのファイルが必要であり、それは Web ブラウザによってアクセスされるスクリプトです。 この例ではドキュメントルート /htdocs/ の下にサブディレクトリを作成し、その中に index.php を配置します。
Smarty は $compile_dir (template_c/) に 書き込み権限 でアクセスする必要があるので、 Web サーバのユーザがこれらに書き込める必要があります。
chown apache:apache /web/www.example.com/guestbook/templates_c/ chmod 770 /web/www.example.com/guestbook/templates_c/
次に、Simplate が表示するファイル index.tpl を作成する必要があります。これは、$template_dir の中に配置しなければなりません。
<{* Simplate *}>
こんにちは、<{$name}>。ようこそ Simplate へ!
では、index.php を編集しましょう。Simplate のインスタンスを作成し、テンプレート変数を割り当て (assign())、index.tpl ファイルを表示 (display()) します。
<?php
if (!extension_loaded('simplate')) { dl('simplate.so'); }
$simplate =& new simplate();
$simplate->template_dir = '/web/www.example.com/guestbook/templates/';
$simplate->compile_dir = '/web/www.example.com/guestbook/templates_c/';
$simplate->assign('name','You');
$simplate->display('index.tpl');
?>
では、Web ブラウザから index.php ファイルを読み込んでみましょう。 "こんにちは、You。ようこそ Simplate へ!" と表示されるはずです。
これで Simplate のセットアップは完了しました!