2010-11-14
Mojolicious::LiteからMojoliciousに移行する場合に考えておきたいこと / Mojoliciousリファレンス
仕事でMojolicious::Liteでプロトタイピングをはじめて、Mojoliciousに移行させたのですけれど、そのときにこんな風にMojolicious::Liteを記述しておいたほうが移行が楽だったなぁということを書いておきます。ほとんとどの手順はMojolicious::Guides::Growingを見れば大丈夫です。移行してみるとやはりメンテナンス性があがりますね。
URLをコントローラとアクションのふたつの組にしておく
Mojoliciousへの移行を考えている場合は、次のように定義しておくとよいです。ルート名は自動でも設定されますが、ハイフン区切りにしておくと見やすいでしょう。
# Mojolicious::Lite get '/foo/bar' => sub { ... } => 'foo-bar'; # Mojolicious $r->get('/foo/bar')->to('foo#bar')->name('foo-bar');
URLにパラメーターを含めるのはもちろんかまいません。アクションとコントローラには影響がありません。
# Mojolicious::Lite get '/foo/bar/:id' => sub { ... } => 'foo-bar'; # Mojolicious $r->get('/foo/bar/:id')->to('foo#bar')->name('foo-bar');
以下のように3つにしてしまったりするとMojoliciousへの移行が大変になります。
# Mojolicious::Lite get '/foo/bar/baz' => sub { ... } => 'foo-bar-baz';
反対にアクション名がない場合はindexというアクションに対応させるとよいでしょう。
# Mojolicious::Lite get '/foo' => sub { ... } => 'foo'; # Mojolicious $r->get('/foo')->to('foo#index')->name('foo');
埋め込まれているテンプレートファイルは自動的にファイルに出力できる
埋め込まれているテンプレートファイルは自動的にファイルに出力できます。自分で記述する必要はありません。
__DATA__ @@ foo-bar.html.ep <html><body>Hello</body></html>
inflateコマンドを使用します。
perl myapp.pl inflate
出力されたファイルは「foo-bar.html.ep」のようにハイフン区切りになっていますので、「foo/bar.html.ep」のようにコントローラー名を持つディレクトリを作ってその中にアクション名のファイルをいれます。
トラックバック - http://d.hatena.ne.jp/perlcodesample/20101114/1278596435
リンク元
- 19 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4TSJH_ja___JP400&q=Perl+最も大きい
- 10 http://www.google.co.jp/search?aq=f&sourceid=chrome&ie=UTF-8&q=perl+正規表現
- 10 http://www.google.co.jp/search?hl=ja&lr=lang_ja&tbs=lr:lang_1ja&q=fedora+ftp&aq=0&aqi=g10&aql=&oq=fedora+FTP
- 9 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&&sa=X&ei=iRxbTa2yMI3RcbKyuN4K&ved=0CCYQBSgA&q=perl+ハッシュ+複数&spell=1
- 8 http://ezsch.ezweb.ne.jp/search/?sr=0101&query=月 英語
- 7 http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=JSON+perl&num=50
- 6 http://reader.livedoor.com/reader/
- 6 http://www.google.co.jp/search?hl=ja&lr=lang_ja&client=firefox-a&rls=org.mozilla:ja:official&tbs=lr:lang_1ja&q=perl+xml::simple+サンプル&aq=f&aqi=&aql=&oq=&gs_rfai=
- 6 http://www.google.co.jp/search?q=正規表現 eオプション&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&hl=ja&client=firefox-a
- 6 http://www.google.co.jp/search?q=perl+正規表現&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&hl=ja&client=firefox-a