• 追加された行はこの色です。
  • 削除された行はこの色です。
* Mojolicious 概要 [#ee09c195]

** テストサーバ起動 [#yfb2fcd6]
 MOJO_RELOAD=1 ./script/myapp daemon
http://www.simplicate.ca/blog/2008/12/getting-started-with-mojolicious---part-1.html

** 構造 [#kf1bb98c]
- lib/MyApp.pm アプリケーションクラス
- lib/MyApp/Example.pm コントローラクラス

** モデルクラスをアプリケーションクラスに登録する [#o0b0c0ae]

 package MyApp;
 
 use MyApp::Model;
 __PACKAGE__->attr(model => sub { MyApp::Model->new });
- attr()はモデルクラス等を登録出来るアクセサ。
- http://search.cpan.org/perldoc?Mojo::Base

** ビュー [#lff69fb2]
*** コントローラ [#r1d09773]
** テンプレート [#ce5f6dd0]
- http://search.cpan.org/perldoc?MojoX::Renderer
- ファイルタイプ(HTMLやJSON)毎にレンダラー(テンプレートエンジン)を登録出来る。

*** コントローラからテンプレートに変数を渡し出力する [#r1d09773]
 $self->stash->{foo} = "FOO";
 $self->render();
 もしくは
 $self->render( foo => 'FOO' );
*** テンプレート [#v9c57810]
 <%= $foo %>

** ログ [#ne90f424]
*** アプリケーションクラスで [#b1d78b56]
*** HTMLテンプレートファイル [#m3f7326a]
 <%= $foo %>                    # エスケープされる
 <%== $foo %>                   # エスケープされない
 <%= (localtime)[5] + 1900 %>年 # Perl組込み関数
 <%#= TODO:XXXX %>              # コメント
- ↑ templates/example/index.html.ep
- Mojo::Template(標準テンプレートエンジン) http://search.cpan.org/perldoc?Mojo::Template

*** いったん出力結果を取り出し、再出力する [#fff04a64]
 $self->stash->{partial} = 1;
 my $html = $self->render('foo' => 'FOO');
 $html =~ s/FOO/BAR/;
 
 $self->res->body($html);
 もしくは
 $self->stash->{partial} = 0;
 $self->stash->{text} = $html;
 $self->render();

*** FillInFormを使う [#y771a6c6]
 $self->stash->{partial} = 1;
 my $html = $self->render('foo' => 'FOO');
 use HTML::FillInForm::Lite;
 my $h = HTML::FillInForm::Lite->new;
 $html = $h->fill(\$html, {textarea1 => 'VALUE'});
 $self->res->body($html);
http://search.cpan.org/perldoc?HTML::FillInForm::Lite

*** 自作のhelper関数を登録する [#q3ebc5c4]
アプリケーションクラスで、
 sub startup {
   $self->log->debug('### TEST ####');
    $self->renderer->add_helper(zero_pad => sub { sprintf '%04d', $_[1] });
 }
*** アクションクラスで [#yb0fe22b]
 sub welcome {
登録し、テンプレートで
 <%= zero_pad(3) %>
使用する。

** デバッグログ [#ne90f424]
 sub index {
   $self->app->log->debug('### TEST ####');
 }

** Mojo::Home ホームオブジェクト [#lcb0864e]
 $path = $self->app->home->to_string; # /home/taro/mojo/bbs/script/
- http://d.hatena.ne.jp/perlcodesample/20090422/1241458411
- [[Mojo::Home>http://search.cpan.org/perldoc?Mojo::Home]]

** アプリケーションをApacheでデプロイする [#u605d2e2]
http://www.simplicate.ca/blog/2008/12/getting-started-with-mojolicious---part-1.html

** 参考・マニュアル [#w21c7a85]
:Perl入門~サンプルコードによるPerl入門~|http://d.hatena.ne.jp/perlcodesample/20091210/1260183022
:Mojoを使って自作ウェブアプリをよりポータブルに!|http://gihyo.jp/dev/feature/01/mojo
:Mojo開発リポジトリ|http://github.com/kraih/mojo
:Template Toolkitプラグイン|http://search.cpan.org/perldoc?MojoX::Renderer::TT


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS