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;