Mojolicious::Lite - 小さなリアルタイムWebフレームワーク
使い方
# Mojolicious::Liteを使うと"strict","warnings","utf8","Perl 5.10 feature"が有効になる use Mojolicious::Lite; # プレースホルダーを使ったルーティング get '/:foo' => sub { my $self = shift; my $foo = $self->param('foo'); $self->render(text => "Hello from $foo!"); }; # Mojoliciousのコマンドシステムの開始 app->start;
説明
Mojolicious::LiteはMojoliciousを中心にして構築された小さなドメイン指定言語です。
Perl 5.20以上の場合は、-signatures
フラグを使うことによりサブルーチンシグネチャを有効にできます。
より多くを知りたい場合は、Mojolicious::Guides::Tutorialを見てください。
成長
Mojolicious::Guides::Growingは、Mojolicious::Liteプロトタイプをよく構成されたMojoliciousに成長させるための詳細なイントロダクションとなっていますが、それが、どれくらいよく似ているかを示すために、いくつかのスニペットを集めました。
ルーティング
「get」「post」関数とその仲間は、まったく同じです。
# Mojolicious::Lite get '/foo' => sub { my $c = shift; $c->render(text => 'Hello World!'); }; # Mojolicious sub startup { my $self = shift; my $routes = $self->routes; $routes->get('/foo' => sub { my $c = shift; $c->render(text => 'Hello World!'); }); }
アプリケーション
「app」関数でアクセスできるアプリケーションオブジェクトは「startup」メソッドに渡される最初の引数です。
# Mojolicious::Lite app->max_request_size(16777216); # Mojolicious sub startup { my $self = shift; $self->max_request_size(16777216); }
プラグイン
「plugin」関数の代わりに、Mojoliciousのpluginメソッドを使うだけです。
# Mojolicious::Lite plugin 'Config'; # Mojolicious sub startup { my $self = shift; $self->plugin('Config'); }
ヘルパー
プラグインと似ていて、「helper」関数の代わりにMojoliciousの「helper」メソッドを使うだけです。
# Mojolicious::Lite helper two => sub { my $c = shift; return 1 + 1; }; # Mojolicious sub startup { my $self = shift; $self->helper(two => sub { my $c = shift; return 1 + 1; }); }
アンダー
後に続く関数の呼び出しの代わりに、ネストされたルートで木を構築するためのメソッドを使うことができます。
# Mojolicious::Lite under '/foo'; get '/bar' => sub {...}; # Mojolicious sub startup { my $self = shift; my $routes = $self->routes; my $foo = $routes->under('/foo'); $foo->get('/bar' => sub {...}); }
関数
Mojolicious::Liteは次の関数を実装しています。
any
my $route = any '/:foo' => sub {...}; my $route = any '/:foo' => sub {...} => 'name'; my $route = any '/:foo' => {foo => 'bar'} => sub {...}; my $route = any '/:foo' => [foo => qr/\w+/] => sub {...}; my $route = any ['GET', 'POST'] => '/:foo' => sub {...}; my $route = any ['GET', 'POST'] => '/:foo' => [foo => qr/\w+/] => sub {...}; my $route = any ['GET', 'POST'] => '/:foo' => (agent => qr/Firefox/) => sub {...};
Mojolicious::Routes::Routeのany
によるルーティングを 生成し、リストされたHTTPのリクエストメソッドにマッチします。 さらなる引数のバリエーションについてはMojolicious::Guides::Tutorialを見てください。
app
my $app = app;
Mojolicious::Liteアプリケーションです。 これは、Mojoliciousのサブクラスです。
# すべての利用可能な属性とメソッドが利用できます app->log->level('error'); app->defaults(foo => 'bar');
del
my $route = del '/:foo' => sub {...}; my $route = del '/:foo' => sub {...} => 'name'; my $route = del '/:foo' => {foo => 'bar'} => sub {...}; my $route = del '/:foo' => [foo => qr/\w+/] => sub {...}; my $route = del '/:foo' => (agent => qr/Firefox/) => sub {...};
Mojolicious::Routes::Routeのdelete
によるルーティングを生成し、 DELETE
リクエストにだけマッチします。 さらなる引数のバリエーションについてはMojolicious::Guides::Tutorialを見てください。
get
my $route = get '/:foo' => sub {...}; my $route = get '/:foo' => sub {...} => 'name'; my $route = get '/:foo' => {foo => 'bar'} => sub {...}; my $route = get '/:foo' => [foo => qr/\w+/] => sub {...}; my $route = get '/:foo' => (agent => qr/Firefox/) => sub {...};
Mojolicious::Routes::Routeのget
によるルーティングを生成し、 GET
リクエストにだけマッチします。 さらなる引数のバリエーションについてはMojolicious::Guides::Tutorialを見てください。
group
group {...};
新しいルーティングのグループを開始します。
helper
helper foo => sub {...};
Mojoliciousのhelper
を使って新しいヘルパーを追加します。
hook
hook after_dispatch => sub {...};
Mojoliciousのhook
と同じです。
options
my $route = options '/:foo' => sub {...}; my $route = options '/:foo' => sub {...} => 'name'; my $route = options '/:foo' => {foo => 'bar'} => sub {...}; my $route = options '/:foo' => [foo => qr/\w+/] => sub {...}; my $route = options '/:foo' => (agent => qr/Firefox/) => sub {...};
Mojolicious::Routes::Routeのoptions
によるルーティングを生成し、 OPTIONS
リクエストにだけマッチします。 さらなる引数のバリエーションについてはMojolicious::Guides::Tutorialを見てください。
patch
my $route = patch '/:foo' => sub {...}; my $route = patch '/:foo' => sub {...} => 'name'; my $route = patch '/:foo' => {foo => 'bar'} => sub {...}; my $route = patch '/:foo' => [foo => qr/\w+/] => sub {...}; my $route = patch '/:foo' => (agent => qr/Firefox/) => sub {...};
Mojolicious::Routes::Routeのpatch
によるルーティングを生成し、 PATCH
リクエストにだけマッチします。 さらなる引数のバリエーションについては上のチュートリアルを見てください。
plugin
plugin SomePlugin => {foo => 23};
Mojoliciousのplugin
を使ってプラグインをロードしま。
post
my $route = post '/:foo' => sub {...}; my $route = post '/:foo' => sub {...} => 'name'; my $route = post '/:foo' => {foo => 'bar'} => sub {...}; my $route = post '/:foo' => [foo => qr/\w+/] => sub {...}; my $route = post '/:foo' => (agent => qr/Firefox/) => sub {...};
Mojolicious::Routes::Routeのpost
によるルーティングを生成し、 POST
リクエストにだけマッチします。 さらなる引数のバリエーションについてはMojolicious::Guides::Tutorialを見てください。
put
my $route = put '/:foo' => sub {...}; my $route = put '/:foo' => sub {...} => 'name'; my $route = put '/:foo' => {foo => 'bar'} => sub {...}; my $route = put '/:foo' => [foo => qr/\w+/] => sub {...}; my $route = put '/:foo' => (agent => qr/Firefox/) => sub {...};
Mojolicious::Routes::Routeのput
によるルーティングを生成し、 PUT
リクエストにだけマッチします。 さらなる引数のバリエーションについてはMojolicious::Guides::Tutorialを見てください。
under
my $route = under sub {...}; my $route = under '/:foo' => sub {...}; my $route = under '/:foo' => {foo => 'bar'}; my $route = under '/:foo' => [foo => qr/\w+/]; my $route = under '/:foo' => (agent => qr/Firefox/); my $route = under [format => 0];
Mojolicious::Routes::Routeのunder
でブリッジを生成し、 すべての続くルーティングに自動的に処理が追加されます。 さらなる引数のバリエーションについてはMojolicious::Guides::Tutorialを見てください。
websocket
my $route = websocket '/:foo' => sub {...}; my $route = websocket '/:foo' => sub {...} => 'name'; my $route = websocket '/:foo' => {foo => 'bar'} => sub {...}; my $route = websocket '/:foo' => [foo => qr/\w+/] => sub {...}; my $route = websocket '/:foo' => (agent => qr/Firefox/) => sub {...};
Mojolicious::Routes::Routeのwebsocket
でルーティングを生成し、 WebSocket
ハンドシェイクにだけマッチします。 さらなる引数のバリエーションについてはMojolicious::Guides::Tutorialを見てください。
属性
Mojolicious::LiteはMojoliciousからすべての属性を継承しています。
メソッド
Mojolicious::LiteはMojoliciousからすべてのメソッドを継承しています。
(Mojolicious 8.12を反映。2019年6月11日更新)