Yanor.net/
Wiki
Blog
GitHub
Sandbox
開始行:
* Mojolicious 概要 [#c9fbc8ee]
*** 編集中 ***
** ルーティング [#tb595d3a]
*** アプリケーションクラスのstartup()で設定 [#c319c563]
$r->route('/example/welcome2',)->to(controller => 'exa...
*** このURLへのリンクを張るには [#f3c42bea]
<a href="<%= url_for('welcome2') %>"> GO to welcome2 </a>
*** 参考 [#rff91eff]
http://d.hatena.ne.jp/perlcodesample/20091102/1246274997
** リダイレクト [#v485343c]
sub index {
my $self = shift;
$self->redirect_to($self->url_for('top)');
return;
}
** モデルクラスをアプリケーションクラスに登録する [#o0b0c...
package MyApp;
use MyApp::Model;
__PACKAGE__->attr(model => sub { MyApp::Model->new });
- attr()はモデルクラス等を登録出来るアクセサ。
- http://search.cpan.org/perldoc?Mojo::Base
** テンプレート [#ce5f6dd0]
- http://search.cpan.org/perldoc?MojoX::Renderer
- ファイルタイプ(HTMLやJSON)毎にレンダラー(テンプレー...
*** コントローラからテンプレートに変数を渡し出力する [#r1...
$self->stash->{foo} = "FOO";
$self->render();
もしくは
$self->render( foo => 'FOO' );
*** HTMLテンプレートファイル [#m3f7326a]
<%= $foo %> # エスケープされる
<%== $foo %> # エスケープされない
<%= (localtime)[5] + 1900 %>年 # Perl組込み関数
<%#= TODO:XXXX %> # コメント
- ↑ templates/example/index.html.ep
- Mojo::Template(標準テンプレートエンジン) http://searc...
*** いったん出力結果を取り出し、再出力する [#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
*** includeする [#oad48fdb]
%= include {template => 'example/inc'};
*** 自作のhelper関数を登録する [#q3ebc5c4]
アプリケーションクラスで、
sub startup {
$self->renderer->add_helper(zero_pad => sub { sprintf...
}
登録し、テンプレートで
<%= zero_pad(3) %>
使用する。
** デバッグログ [#ne90f424]
sub index {
$self->app->log->debug('### TEST ####');
}
** Mojo::Home ホームオブジェクト [#lcb0864e]
$path = $self->app->home->to_string; # /home/taro/mojo/b...
- 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-wit...
** 参考・マニュアル [#w21c7a85]
- [[Perl入門~サンプルコードによるPerl入門~>http://d.hat...
-- http://d.hatena.ne.jp/perlcodesample/20091112
- [[Mojoを使って自作ウェブアプリをよりポータブルに!(技...
- [[Mojo公式>http://mojolicious.org/]]
- [[Mojoメーリングリスト>http://lists.kraih.com/pipermail...
- [[Mojo開発リポジトリ>http://github.com/kraih/mojo]]
- [[Template Toolkitプラグイン>http://search.cpan.org/per...
終了行:
* Mojolicious 概要 [#c9fbc8ee]
*** 編集中 ***
** ルーティング [#tb595d3a]
*** アプリケーションクラスのstartup()で設定 [#c319c563]
$r->route('/example/welcome2',)->to(controller => 'exa...
*** このURLへのリンクを張るには [#f3c42bea]
<a href="<%= url_for('welcome2') %>"> GO to welcome2 </a>
*** 参考 [#rff91eff]
http://d.hatena.ne.jp/perlcodesample/20091102/1246274997
** リダイレクト [#v485343c]
sub index {
my $self = shift;
$self->redirect_to($self->url_for('top)');
return;
}
** モデルクラスをアプリケーションクラスに登録する [#o0b0c...
package MyApp;
use MyApp::Model;
__PACKAGE__->attr(model => sub { MyApp::Model->new });
- attr()はモデルクラス等を登録出来るアクセサ。
- http://search.cpan.org/perldoc?Mojo::Base
** テンプレート [#ce5f6dd0]
- http://search.cpan.org/perldoc?MojoX::Renderer
- ファイルタイプ(HTMLやJSON)毎にレンダラー(テンプレー...
*** コントローラからテンプレートに変数を渡し出力する [#r1...
$self->stash->{foo} = "FOO";
$self->render();
もしくは
$self->render( foo => 'FOO' );
*** HTMLテンプレートファイル [#m3f7326a]
<%= $foo %> # エスケープされる
<%== $foo %> # エスケープされない
<%= (localtime)[5] + 1900 %>年 # Perl組込み関数
<%#= TODO:XXXX %> # コメント
- ↑ templates/example/index.html.ep
- Mojo::Template(標準テンプレートエンジン) http://searc...
*** いったん出力結果を取り出し、再出力する [#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
*** includeする [#oad48fdb]
%= include {template => 'example/inc'};
*** 自作のhelper関数を登録する [#q3ebc5c4]
アプリケーションクラスで、
sub startup {
$self->renderer->add_helper(zero_pad => sub { sprintf...
}
登録し、テンプレートで
<%= zero_pad(3) %>
使用する。
** デバッグログ [#ne90f424]
sub index {
$self->app->log->debug('### TEST ####');
}
** Mojo::Home ホームオブジェクト [#lcb0864e]
$path = $self->app->home->to_string; # /home/taro/mojo/b...
- 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-wit...
** 参考・マニュアル [#w21c7a85]
- [[Perl入門~サンプルコードによるPerl入門~>http://d.hat...
-- http://d.hatena.ne.jp/perlcodesample/20091112
- [[Mojoを使って自作ウェブアプリをよりポータブルに!(技...
- [[Mojo公式>http://mojolicious.org/]]
- [[Mojoメーリングリスト>http://lists.kraih.com/pipermail...
- [[Mojo開発リポジトリ>http://github.com/kraih/mojo]]
- [[Template Toolkitプラグイン>http://search.cpan.org/per...
ページ名: