Mojolicious::LiteでPlack::Middlewareを使う件

いちばんお手軽なやり方は作者氏のブログに書いてあるわけですが、wikiなどには異なるやり方も書いてあるので。

use Mojolicious::Lite;
use Plack::Builder;

get '/' => 'index';

builder {
  enable 'AccessLog';  # Plack::Middleware::AccessLog
  app->start;
};

__DATA__

@@ index.html.ep
<html><body>foo</body></html>

最後のapp->startをPlack::Builder由来のbuilder {};でくるんでやるだけ。

あとは、

$ plackup -a myapp.pl

のような感じでMojolicious::Liteアプリの名前を明示的に指定してやればそのままplackupなりstarmanなりで起動できます。PSGI系のサーバだけ使えればいい人はもちろんMojolicious::Liteアプリをapp.psgiという名前で保存してもOK。