これは、基本的なインストール の続きです。まず先にこちらから読んで下さい!
Smarty をより柔軟にするセットアップ方法は、 クラスを拡張 してあなたの Smarty の環境を初期化する事です。 ディレクトリパスの設定を同じ変数に何度も割り当てる代わりに、一箇所でそれらを行う事が出来ます。
新しいディレクトリ/php/includes/guestbook/
を作成し、setup.php
という新しいファイルを作成しましょう。
この例の環境では /php/includes
が include_path
です。
例と同じようにするか、あるいは絶対パスを使用して下さい。
Example 2.10. /php/includes/guestbook/setup.php
<?php // Smartyライブラリを読み込みます require('Smarty.class.php'); // setup.phpはアプリケーションに必要なライブラリファイルを // 読み込むのに適した場所です。それをここで行うことができます。例: // require('guestbook/guestbook.lib.php'); class Smarty_GuestBook extends Smarty { function Smarty_GuestBook() { // クラスのコンストラクタ。 // これらは新しいインスタンスで自動的にセットされます。 $this->Smarty(); $this->template_dir = '/web/www.example.com/guestbook/templates/'; $this->compile_dir = '/web/www.example.com/guestbook/templates_c/'; $this->config_dir = '/web/www.example.com/guestbook/configs/'; $this->cache_dir = '/web/www.example.com/guestbook/cache/'; $this->caching = true; $this->assign('app_name', 'Guest Book'); } } ?>
では、index.php
ファイルを修正し、
setup.php
を使うようにしてみましょう。
Example 2.11. /web/www.example.com/guestbook/htdocs/index.php
<?php require('guestbook/setup.php'); $smarty = new Smarty_GuestBook(); $smarty->assign('name','Ned'); $smarty->display('index.tpl'); ?>
このように、アプリケーションのために全てを自動的に初期化する
Smarty_GuestBook()
クラスを使う事で、Smarty のインスタンスをとても簡単に作成することができました。