TOP設計・移行・活用> Sledgeでの実装
SledgeによるWebアプリケーションフレームワーク入門
SledgeによるWebアプリケーションフレームワーク入門

第4回:テンプレート管理
著者:ライブドア  栗原 由樹   2005/7/6
前のページ  1  2  3   4  次のページ
Sledgeでの実装

   さて、これまではテンプレート機能の必要性、利点について説明してきましたが、ここではいよいよWebアプリケーションフレームワーク「Sledge」でのテンプレート機能の実装について見ていきたいと思います。
テンプレートエンジンの選択

   テンプレートエンジンとは、データやマクロなどのいわゆるパーツと、HTMLなどで記述されたテンプレートを元にそれらを処理し、出力するしくみのことを言います。HTMLに特化したテンプレートエンジンもありますが、多くのテンプレートエンジンはHTML以外のフォーマットにも対応しています。

   Perlでのテンプレートエンジンの代表的なモジュールと言えば、以下の2つのモジュールがあります。

HTML::Templatehttp://html-template.sourceforge.net/
国内外で人気の高いモジュールで、テンプレートを記述する上で必要となる基本的な機能「変数の表示」「ループ機能」「条件分岐」等が実装されています。実装が小さい分、手軽に使用しやすいという利点があります。
Template-Toolkithttp://www.template-toolkit.org/
海外で人気の高いモジュール(最近では国内でも使われ始めているようです)で、HTML::Templateにある基本的な機能にプラスして「マクロ機能」「プラグイン機能」「複雑な構造のデータアクセス」「DBへのアクセス」、その他多くの機能を実装しているため、あらゆる面においてHTML::Templateよりも高機能なモジュールと言えます。

   これらはCPAN(http://search.cpan.org/)からダウンロードすることができます。それぞれのモジュールには得手不得手がありますので、実装するWebアプリケーションの目的にあったモジュールを選ぶことをお勧めします。

   Sledgeではテンプレートエンジンを自由に選べるように設計されていますが、インストール時に標準で使用することのできるテンプレートエンジンはこの2つになっています。また「sledge-setup」を使用してできるプロジェクトのテンプレートでは「Template-Toolkit」を使用するようになっていますので、ここでは「Template-Toolkit」を使用することを前提に説明していきます。


テンプレートの作成

   まずはテンプレートを作成します。今回はヘッダ、フッタを外部ファイルから読み込んで生成するページを作成してみましょう。最初にヘッダ、フッタのパーツを用意します。

ヘッダ(header.inc)
<html>
<head>
<title>サンプルアプリケーション</title>
</head>
<body>
<h1>ようこそ、[% user.name %]さん!</h1>

フッタ(footer.inc)
<hr>
Copyright (c)2004-2005 ThinkIT Corporation, an Impress Group company. All rights reserved.
</body>
</html>

   前回の連載の中にも出てきましたが、通常のHTMLの文法では見慣れない[% … %]という記述があると思います。これがTemplate-Toolkitのコードを書く部分になります。ヘッダでは「ようこそ、○○さん!」を表示するコードが記述されています。ビジネスロジックの中でuserというハッシュの中にnameというキーでユーザ名を設定することで、テンプレートエンジンでHTMLコードが生成されるときに[% user.name %]がユーザ名に置換されるようになっています。

メインファイル(index.html)
[% INCLUDE 'include/header.inc' %]

これまでの連載一覧(タイトルと作者)
<ul>
[% FOREACH item = series %]
<li>[% item.title %] [% item.author %]</li>
[% END %]
</ul>

[% INCLUDE 'include/footer.inc' %]

   メインファイルの中では、[% INCLUDE 'ファイル名' %]という部分でヘッダとフッタを最初と最後で読み込むようにしています。またメイン部分では、連載一覧と作者を[% FOREACH … %]というループ関数を使用して表示しています。

前のページ  1  2  3   4  次のページ


株式会社ライブドア 栗原 由樹
著者プロフィール
株式会社ライブドア  栗原 由樹
ライブドアが現在の社名になる前の旧オン・ザ・エッヂ時代に同社の技術力に憧れ入社。そこでオープンソースを用いた数多くのWebアプリケーション開発を経験。現在はコンサルティング事業部にて、同社の業務としてはあまり知られていない受託開発を行なう傍ら、オープンソースへの貢献について考える日々を送っている。


INDEX
第4回:テンプレート管理
  はじめに
  テンプレート管理で楽をしよう
Sledgeでの実装
  ビジネスロジックの作成