基本的なインストール
Smarty のライブラリファイルを、ディストリビューションの /libs/ サブディレクトリにインストールしてください。 これらの .php を編集してはいけません。 これらはすべてのアプリケーションで共有するものであり、 Smarty を新しいバージョンにアップグレードする際にのみ更新します。
以下の例で、Smarty の tarball の展開先は次のようになります。
*nix の場合は /usr/local/lib/Smarty-v.e.r/
Windows 環境の場合は c:\webroot\libs\Smarty-v.e.r\
Smarty は、SMARTY_DIR という名前の PHP の 定数 を使用します。これは、Smarty の libs/ ディレクトリへの 絶対パス を表します。 基本的にあなたのアプリケーションが Smarty.class.php ファイルを見つける事が出来るなら SMARTY_DIR を定義する必要はありません。Smarty は自分でそれを考えます。 したがって、もし Smarty.class.php が include_path にないか、あなたのアプリケーションにてそれらへの絶対パスが指定されていないなら、 手動で SMARTY_DIR を定義する必要があります。 SMARTY_DIR は、 最後にスラッシュ / を含めなければなりません。
次の例では、PHP スクリプト内での Smarty インスタンスの作成方法を示します。
<?php |
上のスクリプトを実行してみてください。 Smarty.class.php ファイルが見つからないというエラーが出た場合は、 以下のいずれかを行う必要があります。
例 2-5. PHP スクリプト内での ini_set() によるインクルードパスの追加
|
これでライブラリファイルは正常に設置できたので、 今度はあなたのアプリケーション内に Smarty 用のディレクトリを セットアップしましょう。
Smarty は、デフォルトで templates/、 templates_c/、configs/ および cache/ と名づけられた4つのディレクトリが必要です。
これらの名前は、それぞれ Smarty クラスのプロパティ $template_dir、 $compile_dir、 $config_dir および $cache_dir で定義することができます。
Smarty を使用する各アプリケーションにおいて、 これらのディレクトリを個別に設置する事を強く推奨します。
インストール例として、ゲストブックアプリケーションの Smarty 環境をセットアップしてみます。 私達はディレクトリの命名規約の目的についてのみ取り上げました。 例のアプリケーション名を guestbook/ からあなたのアプリケーション名に置き換えれば、同様の環境を使用できます。
あなたは web サーバのドキュメントルートの位置を知っている必要があります。 例ではドキュメントルートは /web/www.example.com/guestbook/htdocs/ とします。Smarty ディレクトリは Smarty ライブラリによってのみアクセスされ、 web ブラウザから直接アクセスされる事はありません。 したがってセキュリティの心配を避けるために、 これらのディレクトリをドキュメントルートの 外部 に配置する事を推奨します (ただし必須ではありません)。
ドキュメントルート下には最低1つのファイルが必要であり、 それは web ブラウザによってアクセスされるスクリプトです。 この例ではドキュメントルート /htdocs/ の下にサブディレクトリを作成し、その中に index.php を配置します。
Smarty は $compile_dir と $cache_dir (templates_c/ と cache/) に 書き込み権限 でアクセスする必要があるので、 web サーバのユーザがこれらに書き込める必要があります (windows ユーザはこの話を無視してください)。
注意: 通常は、このユーザは "nobody" でグループは "nobody" です。OS X ユーザの場合は、デフォルトのユーザは "www" でグループは "www" です。 もし Apache を使用しているなら、httpd.conf ファイルを見ればユーザ名とグループ名がわかります。
注意: chmod 770 は強固なセキュリティです。 これは、ユーザ "nobody" とグループ "nobody" のみにディレクトリのリード/ライトアクセスを許可します。 もし誰にでもリードアクセスを可能にしたい場合 (大抵はあなた自身がファイルを見るための利便性から) は、代わりに 775 を使う事が出来ます。
次に、Smarty が表示するファイル index.tpl を作成する必要があります。これは、 $template_dir の中に配置しなければなりません。
テクニカルノート: {* Smarty *} はテンプレートの コメント です。 これは必須ではありませんが、全てのテンプレートファイルのはじめに コメントを書くのは良い習慣です。 これは、ファイルの拡張子に関わらずファイルを認識する事を簡単にします。 例えば、テキストエディタはファイルを認識して特有のシンタックスハイライトを有効にするでしょう。
では、index.php を編集しましょう。 Smarty のインスタンスを作成し、テンプレート変数を割り当て (assign())、 index.tpl ファイルを表示 (display()) します。
例 2-9. /web/www.example.com/docs/guestbook/index.php の編集
|
注意: この例では、Smartyのディレクトリすべてを絶対パスで設定しています。 もし /web/www.example.com/guestbook/ が PHP の include_path にあるのなら、これらの設定は必要ありません。 けれどもこれらを絶対パスで指定する方が より効率的で、(経験上)エラーが少なくなります。 そうすれば、Smarty はあなたが意図したディレクトリからファイルを確実に取得できます。
では、web ブラウザから index.php ファイルを読み込んでみましょう。 "こんにちは、Ned。ようこそ Smarty へ!" と表示されるはずです。
これで Smarty の基本的なセットアップは完了しました!