簡介
Mojo是一個強(qiáng)大的WEB開發(fā)工具包铝阐,它包含寫簡單Web應(yīng)用和寫高度分層的Web框架(如:Mojolicious)所需的所有基本工具包和接口類恨胚。常用的工具包括Mojo::UserAgent,Mojo::DOM灼卢,Mojo::JSON绍哎,Mojo::Server::Daemon,Mojo::Server::Prefork鞋真,Mojo::IOLoop和Mojo::Template崇堰。
屬性
Mojo包中包含的屬性有:home,log、ua海诲。下面分別進(jìn)行介紹繁莹。
home
應(yīng)用程序的家目錄,默認(rèn)情況下是Mojo::Home對象特幔。
使用的語法如下:
my $home = $app->home;
$app = $app->home(Mojo::Home->new);
有關(guān)Mojo::Home的介紹請移步:Mojo::Home咨演。
log
應(yīng)用程序的日志等級,默認(rèn)情況下是一上 Mojo::Log對象蚯斯。
使用語法如下:
my $log = $app->log;
$app = $app->log(Mojo::Log->new);
有關(guān)Mojo::Log的介紹請移步:Mojo::Log薄风。
ua
一個全功能的HTTP用戶代碼,默認(rèn)情況下是Mojo::UserAgent的對象拍嵌。
使用語法如下:
my $ua = $app->ua;
$app = $app->ua(Mojo::UserAgent->new);
有關(guān)Mojo::UserAgent的介紹請穩(wěn)步:Mojo::UserAgent遭赂。
方法
Mojo模塊從Mojo::Base模塊繼承得到了所有方法,并實現(xiàn)了以下方法:build_tx横辆,conifg撇他,handler;下面分別介紹狈蚤。
build_tx
事務(wù)的創(chuàng)建者困肩,默認(rèn)情況下創(chuàng)建一個 Mojo::Transaction::HTTP對象。
使用語法如下:
my $tx = $app->build_tx;
想要了解更多關(guān)于 Mojo::Transaction::HTTP模塊的信息炫惩,請移步:Mojo::Transaction::HTTP僻弹。
config
負(fù)責(zé)應(yīng)用程序的配置,語法如下:
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);
- 當(dāng)傳一個字符串作為參數(shù)時他嚷,這個參數(shù)的值被作為$key蹋绽,然后從$app對象下的config屬性中取鍵名為$key的$value并返回。得到的其實就是$app->{config}->{$key}的值筋蓖。
- 當(dāng)傳一個hash引用作為參數(shù)或傳一個列表作為參數(shù)時卸耘,會把hash引用(或把參數(shù)列表轉(zhuǎn)換為hash引用后)合并到$app->{config}中,如果$app->{config}中已經(jīng)有對應(yīng)的鍵了粘咖,則會用新的值覆蓋它蚣抗。從而完成設(shè)置config的目的。
handler
應(yīng)用程序的主要入口點瓮下,在這里會創(chuàng)建每一個新的事務(wù)翰铡。這通常會是一個Mojo::Transaction::HTTP或Mojo::Tracsaction::HTTP::WebSocket對象,這個方法需要在子類中重載讽坏。