初めてのCatalyst入門(8)
Catalystのビュープログラミング
Catalystのビューを使って統一的なサイトを構築する
ダウンロード サンプルファイル (16.0 KB)
ビューの種類
Catalystでは、モデルと同様にさまざまな出力を可能とするビューコンポーネントが用意されています。Catalystで使用可能な主なビューコンポーネントには次のようなものがあります。
| ビューコンポーネント | 説明 |
| Catalyst::View::TT | テンプレートクラスとしてTemplate::Toolkitを使用 |
| Catalyst::View::HTML::Template | テンプレートクラスとしてHTML::Templateを使用 |
| Catalyst::View::Mason | テンプレートクラスとしてHTML::Masonを使用 |
| Catalyst::View::JSON | データをJSON形式で出力する |
| Catalyst::View::Atom::XML | データをAtom形式のXMLとして出力する |
それ以外のビューについては、Catalyst::Manual::Components#VIEWSなどを参照ください。
上記サイトで紹介されていないものでも、CSVやPDF形式で出力できるビューコンポーネントもありますので、CPANサイトから検索してみてください。
Catalyst::View::TT
Catalystのビューコンポーネントとしてもっとも多く紹介されており、そしておそらくもっとも多くのサイトで使われているのがCatalyst::View::TTです。このコンポーネント自体は非常に薄く、処理のほとんどはTemplate::Toolkitに依存しています。
Catalyst::View::TTにはCatalystのビューコンポーネント以外に2つのヘルパクラスが用意されており、それぞれの用途により使い分けることができます。
ヘルパクラスの実行は、scriptディレクトリ以下にある<myapp>_create.plスクリプトを使用します。
$ <MyApp>/script/<myapp>_create.pl view 作成するビュークラス名 TT または TTSite
Catalyst::Helper::View::TT
Catalyst::Helper::View::TTでは、簡単なHTMLを表示するためのクラスを作成します。このヘルパを使用してビューを作成するには、次のコマンドを実行します。
$ ./MyApp/script/myapp_create.pl view TT TT
Catalyst::Helper::View::TTで作成されるファイル
このヘルパクラスにより作成されるファイルは次の2つです。
| クラス | 説明 |
| lib/<myApp>/View/TT.pm | Catalyst::View::TTを継承したビュークラス |
| t/view_TT.t | 作成されたビュークラスのテスト |
設定パラメータ
作成されたTT.pmでは、__PACKAGE__->configメソッドでいくつかの設定値を渡すことができます。デフォルトではTEMPLATE_EXTENSIONのみを指定しています。
主要な設定パラメータには次のようなものがあります。
| パラメータ名 | デフォルト値 | 説明 |
| INCLUDE_PATH | "root"、"root/base" | テンプレートファイルを探すパス |
| TEMPLATE_EXTENSION | 無し | テンプレートファイルの拡張子 |
| CATALYST_VAR | c | テンプレートファイルで使用するCatalystのコンテキストオブジェクト名 |
INCLUDE_PATHでは、テンプレートファイルを検索するためのディレクトリを指定します。
TEMPLATE_EXTENSIONでは、コントローラのネームスペースとアクション名から自動的にテンプレートファイルを探し出すための拡張子を指定します。
コントローラで明示的にテンプレートファイルを設定しない場合には、INCLUDE_PATHから、/<コントローラのネームスペース> /<アクション名>+TEMPLATE_EXTENSIONという規則に従って、テンプレートファイルを探しに行きます。
CATALYST_VARは、テンプレートファイルからCatalystのコンテキストオブジェクトを参照するための名前を指定します。
例えば、アクセスしてきたクライアントのUserAgentを取得するには、テンプレートファイルで次のように記述します(テンプレートファイルで使用可能なディレクティブについては後ほど説明します)。
[% c.req.user_agent %]
この記事は参考になりましたか?
- Webアプリケーションフレームワーク「Catalyst」入門連載記事一覧
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 花田 善仁(ハナダ ヨシヒト)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
