Mojoliciousが1.0になったので試してみた

Hello Worldレベルで特に中身はない

雛形作成

$ mojo generate app MyApp

my_appというディレクトリの下に色々作られる。
そしたらとりあえずplackupで確認。

$ cd my_app
$ plackup script/my_app

下記にアクセスしてみるとwelcome的なページがでる。

http://localhost:5000/welcome


次にMojoliciousデフォルトのテンプレートの使い方を憶えるのが億劫なので
xslateを使えるようにする。まずモジュールをインストールしておく。

$ cpanm MojoX::Renderer::Xslate

そしてlib/MyApp.pmのstart_upに下記を追加で使えるようになる。

$self->plugin('xslate_renderer');

で今度は実際使えるかをコントローラを追加して確かめてみる。
lib/MyApp.pmのstart_upに追加

# '/'にアクセスしてきたらMyApp/Root.pmのindexを呼び出す。
# nameはパラメータでhogeはそのデフォルト値
$self->route('/:name')->to('root#index', name => 'hoge');

※ここでRoot#indexみたいな指定をするとRoot.pmのindexを呼び出すところまではいくのだけどテンプレートの探索に失敗してしまう。

lib/MyApp/Root.pmを下記のように適当に新規作成

package MyApp::Root;
use strict;
use warnings;

sub index {
    my $self = shift;
    my $name = $self->param('name');
    $self->render(message => "Hello $name !!");
}
1;

あとテンプレート。
テンプレートはtemplate/[コントローラ名(小文字)]の下に[アクション名].html.txみたいに作る。この場合だとtemplate/root/index.html.tx。めんどいのでとりあえずこれだけ。

<: $message :>

そしたらplackupでもして再度下記にアクセスすると"Hello hironorism !!"とかでてくれるはず。

http://localhost:5000/hironorism


コントローラから別のコントローラ呼ぶとかどうやるんだろ?時間があったら後でソースでも読みながら調べようかな。


ちなみにほとんどこちらを参考にしますた
Mojolicious + Xslate + SkinnyでMVC開発環境 - $shibayu36->blog;