CatalystでTemplate-Toolkitを使用したView
CatalystでTemplate-Toolkitを使用したViewクラスを作成する。
・ヘルパースクリプトを利用して雛形を作成する
$ ./script/myapp_create.pl view TT TT exists "/who/am/i/MyApp/script/../lib/MyApp/View" exists "/who/am/i/MyApp/script/../t" created "/who/am/i/MyApp/script/../lib/MyApp/View/TT.pm" created "/who/am/i/MyApp/script/../t/view_TT.t"
・設定ファイルに TTの設定項目を追加する
$ vi MyApp/myapp.yml name: MyApp +View::TT: + INCLUDE_PATH: + - 'root/tmpl' TEMPLATE_EXTENSION: '.tt'
・tmplディレクトリ作成
$ mkdir MyApp/root/tmpl
・hello.ttの作成
$ vi MyApp/root/tmpl/hello.tt +I am <a href="[% base %]hello">hello</a>. ・アプリケーションクラスの編集 >|| vi MyApp/lib/MyApp/Controller/Root.pm sub hello : Local { my ( $self, $c ) = @_; - # Hello World - $c->res->body( 'Hello World!' ); + $c->stash->{template} = 'hello.tt'; }
・ページにアクセスして表示確認
http://localhost:3000/hello
I am hello.
アプリケーションクラスの記述について
アプリケーションクラスでは、テンプレートファイルが指定されていない場合、
アクション名(今回の場合 hello) + yamlファイルに設定された拡張子を使います。
hello.tt が root/tmpl/hello.tt として作成されているので、省略するこもと可能です。
・アプリケーションクラスの再編集
vi MyApp/lib/MyApp/Controller/Root.pm sub hello : Local { - my ( $self, $c ) = @_; - - # Hello World - $c->stash->{template} = 'hello.tt'; }