Catalyst-Plugin-CRUD (3)
さきほどのエントリーまでで、モデルは作ったので、次はビューです。Catalyst::Plugin::CRUD は Template::Toolkit と ClearSilver に対応しています。HTML::Template は要望があれば対応させようと思います。
Template::Toolkit を使うメリット
- 高機能です
- さまざまなプラグインを組み合わせることでさらに高機能になります
Template::Toolkit を使うデメリット
HTML::Template を使うメリット
- Pure Perl で書かれていますが、Template::Toolkit よりはずっと早いです
- 基本的には文字列置き換えなので Template::Toolkit に比べればセキュリティのリスクは低いです
HTML::Template を使うデメリット
- テンプレート中に Perl のコードを埋めることはできません
- 一切の関数呼び出しができません
- オブジェクトを渡すこともできません
ClearSilver を使うメリット
ClearSilver を使うデメリット
- テンプレート中に Perl のコードを埋めることはできません
- 一切の関数呼び出しができません
- オブジェクトを渡すこともできません
Template::Toolkit を使う場合
- まずは CPAN からインストールします
$ su - # cpan Template Catalyst::View::TT Catalyst::Plugin::I18N
- ビューを作ります
$ cd TinyURL/script $ ./tinyurl_create.pl view TT TT
ClearSiler を使う場合
- まずは本家サイトからダウンロードしてインストールします
$ wget http://www.clearsilver.net/downloads/clearsilver-0.10.4.tar.gz $ tar xvzf clearsilver-0.10.4.tar.gz $ cd clearsilver-0.10.4 $ ./configure $ cd perl $ perl Makefile.PL $ make $ su # make install
- 次に CPAN からインストールします
$ su - # cpan Catalyst::View::ClearSilver
- ビューを作ります
$ cd TinyURL/script $ ./tinyurl_create.pl view CS ClearSilver
- ClearSilver を使う場合は mo ファイルを作ります
- mo ファイルは po ファイルを元にして作られるバイナリファイルで、po ファイルを編集するたびに mo ファイルを作り直す必要があります
- Template::Toolkit も mo ファイルに対応しています
$ cd TinyURL/lib/TinyURL/I18N $ msgfmt -o ja.mo ja.po $ msgfmt -o en.mo en.po
use File::chdir; use Locale::Maketext::Gettext; sub end : ActionClass('RenderView') { my ( $self, $c ) = @_; local $CWD = '/home/username/BookMark/root'; my %loc = %{MyApp::I18N::ja::Lexicon}; $c->stash->{loc} = \%loc; }