SSLモバイル

第7回 Smartyの便利な機能を使いこなす(その1:キャッシュ前編) (その1)

yossy先生1年ぶりのご無沙汰です。昨年、全6回でSmarty講座を連載させていただきましたが、今回再びSmarty講座を連載させていただくことになりました。

前回まではPHP初心者の方をターゲットとして、Smartyの基本を紹介させていただきましたが、今回はもう少し読者のターゲットを広げ、Smartyをある程度使いこなしている人がサイト構築でSmartyをもっと便利に利用するにはどうしたらいいか、というところに踏み込んで説明していきたいと思っています。

この1年で変わったこと

さて昨年の連載から1年経ち、その間にSmartyを取り巻く環境にも変化がありました。

Smarty公式サイトが新ドメインに

以前はPHPプロジェクトのサブプロジェクトという位置づけだったため、smarty.php.netというドメインでSmarty公式サイトが運営されていましたが、現在はhttp://www.smarty.net/という独自のドメインで運営されるようになりました。

バージョンアップ

前回の連載時の最新バージョンは2.6.18でしたが、現在の最新バージョンは2.6.20になっています。バグfixなどの修正が入ってますので、是非最新バージョンに更新してください。インストール方法はSmarty講座 第1回の記事を参考にしてください。

Smarty 3.0のα版が公開

メジャーバージョンアップとなるSmarty 3.0の開発がスタートしました。まだα版なので安定はしていないようですが、もし興味のある人はSubversionのリポジトリが公開されているようなので、チェックアウトして試してみてはいかがでしょうか。

http://smarty-php.googlecode.com/svn/branches/Smarty3Alpha/

またフォーラムやメーリングリストで要望なども受け付けているようなので(英語ですが)、もし機能追加や仕様変更などの要望がある人は、是非議論に参加してみてください。

http://www.phpinsider.com/smarty-forum/viewtopic.php?t=14168
http://groups.google.com/group/smarty-developers

キャッシュとは?

yossy先生さて前置きが長くなりましたが、ここから本題。今回はキャッシュについて説明したいと思います。

そもそもキャッシュとは何でしょうか? 例えばWebブラウザではIEなら「一時ファイル」Firefoxなら「ページキャッシュ」という名前で、閲覧したページの情報を一時的に保存するキャッシュ機能が用意されています。これは一度見たページに再度アクセスしなくても、以前見たときのデータが残っていればそれをそのまま利用することで高速に表示できるという仕組みです。

またWindowsなどのOSでも、よくアクセスするハードディスク上のデータを、より高速アクセスできるメモリ上に保持しておくことで高速にアクセス出来るようにする「ディスクキャッシュ」の仕組みが用意されています。

Webアプリケーションではmemcachedなどを用いて、よく使うDBのデータをメモリ上にキャッシュしておくことでパフォーマンスを向上させるテクニックがよく用いられています。

つまり、よく利用するデータなどを使い回して高速に利用できるよう置いておく仕組みが「キャッシュ」なのです。

キャッシュの仕組み

ではSmartyで用意されているキャッシュの仕組みはどういうものでしょうか?Smartyのキャッシュはdisplay()で生成される出力結果を保存しておくことができます。それにより、Smartyテンプレートの解析やテンプレートに渡すパラメータの取得やテンプレートの解析を省略することが出来、表示を高速化することが出来ます。

Smartyのキャッシュ

「yossy先生のSmarty講座」のトップへ