Mojo
НАЗВАНИЕ
Mojo - Минимальный каркас веб приложений !
ОБЗОР
use Mojo::Base 'Mojo'; # Всё множество интерфейсов CGI, FastCGI, PSGI, HTTP и WebSockets # сводится к простому вызову метода! sub handler { my ($self, $tx) = @_; # Запрос my $method = $tx->req->method; my $path = $tx->req->url->path; # Ответ $tx->res->code(200); $tx->res->headers->content_type('text/plain'); $tx->res->body("$method request for $path!"); # Завершающая транзакция $tx->resume; }
ОПИСАНИЕ
Mojo обеспечивает гибкую среду выполнения для веб фреймворков на Perl. Он предоставляет все основные инструменты и хэлперы(анг. helpers), необходимые для создания простых веб-приложений и веб-фреймворков таких как Mojolicious.
См. Mojolicious чтобы узнать больлше!
АТРИБУТЫ
Mojo реализует следующие атрибуты.
home
my $home = $app->home; $app = $app->home(Mojo::Home->new);
Домашний каталог приложения, по умолчанию объект Mojo::Home, который преобразует строку в фактический путь.
log
my $log = $app->log; $app = $app->log(Mojo::Log->new);
Уровень логирования для приложения, по умолчанию объект Mojo::Log.
on_transaction
my $cb = $app->on_transaction; $app = $app->on_transaction(sub {...});
Функция обратного вызова срабатывает при необходимости новой транзакции, по умолчанию создает объект Mojo::Transaction::HTTP.
on_websocket
my $cb = $app->on_websocket; $app = $app->on_websocket(sub { ... });
Функция обратного вызова срабатывает для установления соединения WebSocket, по умолчанию создает объект Mojo::Transaction::WebSocket и обрабатывает ответ на запрос установления связи.
ua
my $ua = $app->ua; $app = $app->ua(Mojo::UserAgent->new);
Полнофункциональный HTTP 1.1 агент пользователя для использования в приложениях, по умолчанию используется объект Mojo::UserAgent.
МЕТОДЫ
Mojo наследует все методы из Mojo::Base и реализует следующие новые.
new
my $app = Mojo->new;
Конструктор нового Mojo приложения. Автоматически определяет домашний
каталог и настраивает логирование в log/mojo.log
, если присутствует каталог log.
handler
$tx = $app->handler($tx);
Обработчик основной точки входа в приложение или фреймворка и будет вызываться для каждой новой транзакции, обычно объекты Mojo::Transaction::HTTP или Mojo::Transaction::WebSocket.
sub handler { my ($self, $tx) = @_; }