Mojo
简介
Mojo是一个强大的WEB开发工具包,它包含写简单Web应用和写高度分层的Web框架(如:Mojolicious)所需的所有基本工具包和接口类。常用的工具包括Mojo::UserAgent,Mojo::DOM,Mojo::JSON,Mojo::Server::Daemon,Mojo::Server::Prefork,Mojo::IOLoop和Mojo::Template。
属性
Mojo包中包含的属性有:home,log、ua。下面分别进行介绍。
home
应用程序的家目录,默认情况下是Mojo::Home对象。
使用的语法如下:
my $home = $app->home;
$app = $app->home(Mojo::Home->new);
有关Mojo::Home的介绍请移步:Mojo::Home。
log
应用程序的日志等级,默认情况下是一上 Mojo::Log对象。
使用语法如下:
my $log = $app->log;
$app = $app->log(Mojo::Log->new);
有关Mojo::Log的介绍请移步:Mojo::Log。
ua
一个全功能的HTTP用户代码,默认情况下是Mojo::UserAgent的对象。
使用语法如下:
my $ua = $app->ua;
$app = $app->ua(Mojo::UserAgent->new);
有关Mojo::UserAgent的介绍请稳步:Mojo::UserAgent。
方法
Mojo模块从Mojo::Base模块继承得到了所有方法,并实现了以下方法:build_tx,conifg,handler;下面分别介绍。
build_tx
事务的创建者,默认情况下创建一个 Mojo::Transaction::HTTP对象。
使用语法如下:
my $tx = $app->build_tx;
想要了解更多关于 Mojo::Transaction::HTTP模块的信息,请移步:Mojo::Transaction::HTTP。
config
负责应用程序的配置,语法如下:
my $hash = $app->config;
my $foo = $app->config('foo');
$app = $app->config({foo => 'bar', baz => 23});
$app = $app->config(foo => 'bar', baz => 23);
# Remove value
my $foo = delete $app->config->{foo};
# Assign multiple values at once
$app->config(foo => 'test', bar => 23);
- 当传一个字符串作为参数时,这个参数的值被作为$key,然后从$app对象下的config属性中取键名为$key的$value并返回。得到的其实就是$app->{config}->{$key}的值。
- 当传一个hash引用作为参数或传一个列表作为参数时,会把hash引用(或把参数列表转换为hash引用后)合并到$app->{config}中,如果$app->{config}中已经有对应的键了,则会用新的值覆盖它。从而完成设置config的目的。
handler
应用程序的主要入口点,在这里会创建每一个新的事务。这通常会是一个Mojo::Transaction::HTTP或Mojo::Tracsaction::HTTP::WebSocket对象,这个方法需要在子类中重载。