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);
  1. 当传一个字符串作为参数时,这个参数的值被作为$key,然后从$app对象下的config属性中取键名为$key的$value并返回。得到的其实就是$app->{config}->{$key}的值。
  2. 当传一个hash引用作为参数或传一个列表作为参数时,会把hash引用(或把参数列表转换为hash引用后)合并到$app->{config}中,如果$app->{config}中已经有对应的键了,则会用新的值覆盖它。从而完成设置config的目的。

handler

应用程序的主要入口点,在这里会创建每一个新的事务。这通常会是一个Mojo::Transaction::HTTP或Mojo::Tracsaction::HTTP::WebSocket对象,这个方法需要在子类中重载。

你可能感兴趣的:(Mojo)