Mojolicious 概要*** 編集中 *** ルーティングアプリケーションクラスのstartup()で設定$r->route('/example/welcome2',)->to(controller => 'example', action => 'welcome2')->name('welcome2'); このURLへのリンクを張るには<a href="<%= url_for('welcome2') %>"> GO to welcome2 </a> 参考http://d.hatena.ne.jp/perlcodesample/20091102/1246274997 リダイレクトsub index { my $self = shift; $self->redirect_to($self->url_for('top)'); return; } モデルクラスをアプリケーションクラスに登録するpackage MyApp; use MyApp::Model; __PACKAGE__->attr(model => sub { MyApp::Model->new });
テンプレート
コントローラからテンプレートに変数を渡し出力する$self->stash->{foo} = "FOO"; $self->render(); もしくは $self->render( foo => 'FOO' ); HTMLテンプレートファイル<%= $foo %> # エスケープされる <%== $foo %> # エスケープされない <%= (localtime)[5] + 1900 %>年 # Perl組込み関数 <%#= TODO:XXXX %> # コメント
いったん出力結果を取り出し、再出力する$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を使う$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 includeする%= include {template => 'example/inc'}; 自作のhelper関数を登録するアプリケーションクラスで、 sub startup { $self->renderer->add_helper(zero_pad => sub { sprintf '%04d', $_[1] }); } 登録し、テンプレートで <%= zero_pad(3) %> 使用する。 デバッグログsub index { $self->app->log->debug('### TEST ####'); } Mojo::Home ホームオブジェクト$path = $self->app->home->to_string; # /home/taro/mojo/bbs/script/ アプリケーションをApacheでデプロイするhttp://www.simplicate.ca/blog/2008/12/getting-started-with-mojolicious---part-1.html 参考・マニュアル |
|