Dancer - микро веб-фреймворк на Perl. Часть 1.

Dancer Perl фреймворк 23 июня 2011 г., 17:41

Введение

В одной из прошлых заметок я коротко описал Mojolicious::Lite — микро веб-фреймворк на Perl. Сегодня хочу начать рассказ о еще одном микро фреймоврке и тоже на Perl. Речь идет о Dancer. Dancer был создан под впечатлениями от Sinatra (микро веб-фрейморк на Ruby) и заимствует многие его возможности и идеи. Dancer активно развивается, регулярно выходят новые версии и появляются новые плагины.

Официальный сайт — www.perldancer.org/
Исходный код — github.com/sukria/Dancer
Dancer на CPANsearch.cpan.org/~sukria/Dancer-1.3060/
Twitter — twitter.com/PerlDancer
Заметки о Dancer от автора — www.sukria.net/fr/archives/tag/dancer/

В своей сегодняшней заметке я расскажу как установить Dancer, как создать первое приложение, мы кратко рассмотрим структуру Dancer-приложения и в конце запустим наше приложение и посмотрим на результат его работы.

Дальше будет больше, так что следите за новостями =)

Установка




Установить Dancer, как и любой другой Perl-модуль, можно несколькими способами, вот некоторые из них (работа этих команд проверялась в операционной системе Ubuntu Linux):

perl -MCPAN -e 'install Dancer'
cpanm Dancer (используюя cpanminus)

Установка проходит довольно быстро, зависимостей у фреймворка совсем немного.
После того как Dancer установлен, можно приступать к созданию первого приложения.
Наличие вспомогательной утилиты/скрипта/команды для создания первоначальной структуры приложения стало уже стандартом для современных фреймворков на любых языках программирования. Dancer не исключение. Наше первое приложение назовем «Engine» (а уж, что этот «движок» будет делать — решайте сами =) ). Итак, для создания приложения выполним следующую команду:

dancer -a Engine

В результате чего получим вот такой вывод:

+ Engine
+ Engine/bin
+ Engine/bin/app.pl
+ Engine/config.yml
+ Engine/environments
+ Engine/environments/development.yml
+ Engine/environments/production.yml
+ Engine/views
+ Engine/views/index.tt
+ Engine/views/layouts
+ Engine/views/layouts/main.tt
+ Engine/MANIFEST.SKIP
+ Engine/lib
Engine/lib/
+ Engine/lib/Engine.pm
+ Engine/public
+ Engine/public/css
+ Engine/public/css/style.css
+ Engine/public/css/error.css
+ Engine/public/images
+ Engine/public/500.html
+ Engine/public/404.html
+ Engine/public/dispatch.fcgi
+ Engine/public/dispatch.cgi
+ Engine/public/javascripts
+ Engine/public/javascripts/jquery.js
+ Engine/t
+ Engine/t/002_index_route.t
+ Engine/t/001_base.t
+ Engine/Makefile.PL

Перейдем в каталог нашего новенького приложения и посмотрим, что мы получили (структура Dancer-приложения на github).

Структура Dancer приложения

Как видно, у нас уже есть jquery! jQuery in the box!

Каталог "bin" — содержит один единственный файл "app.pl", который предназначен для запуска нашего Dancer-приложения.Более подробно о нем мы поговорим немного позже. Особо нетерпеливые могу почитать справку, выполнив команду:

./app.pl --help

Файл "config.yml" — основной конфигурационный файл Dancer-приложения. Настройки хранятся в формате YAML (да, Кэп!). Данный файл считывается при старте приложения.

Каталог "enviroments" — содержит конфигурационные файлы для различных вариантов работы приложения (development, test, production и т.д.). Подробнее про это — в одной из следующих заметок.

Каталог "lib" — сердце нашего Dancer-приложения, здесь «вся соль». Для нового приложения этот каталог содержит файл (Perl-модуль) с именем приложения (в нашем случае это модуль Engine.pm). В простейшем случае вся логика приложения будет содержаться именно в этом единственном файле. Содержание этого файла рассмотрим чуть позже.

Файл "Makefile.PL" — файл стандартный для большинства Perl-модулей.

Каталог "public" — предназначен для хранения статичных файлов, таких как css-файлы, js-файлы, картинки и прочее.

Каталог "t" — содержит тесты для нашего приложения.

Каталог "views" — содержит шаблоны нашего приложения (view в терминах MVC). Внутри имеется каталог "layouts", который содержит «общие» шаблоны.

Вот мы совсем коротко и рассмотрели структуру нашего Dancer-приложения, пришло время посмотреть как оно работает. Сердцем приложения, как уже отмечалось, является каталог «lib», перейдем в него и откроем файл Engine.pm. Вот как он выглядит:

package Engine;
use Dancer ':syntax';

our $VERSION = '0.1';

get '/' => sub {
    template 'index';
};

true;

Всего 10 строк перлового кода, тем не менее, это работающие приложение, пусть и не делающее ничего полезного.

Запустим его и посмотрим на результат работы. Для запуска приложения воспользуемся утилитой app.pl из каталога «bin» нашего приложения, выполним следующую команду:

./bin/app.pl

В результате получим приблизительно следующий вывод:

[9956] core @0.000012> loading Dancer::Handler::Standalone handler in /usr/local/share/perl/5.10.1/Dancer/Handler.pm l. 40
[9956] core @0.000214> loading handler 'Dancer::Handler::Standalone' in /usr/local/share/perl/5.10.1/Dancer.pm l. 352
>> Dancer 1.3060 server 9956 listening on 0.0.0.0:3000
== Entering the development dance floor…

Тем самым мы запустили сервер разработки на котором выполняется наше приложение.

Открыв браузер и перейдя по адресу localhost:3000/, увидим страницу приветсвия Dancer.

Dancer страница приветствия

Поздравляю, Ваше первое Perl-Dancer-приложение создано и работает!

В следующей заметке мы будем говорить о роутах, шаблонах и прочих интересных вещах!

Если найдете ошибку или захотите что-то дополнить — пишите в комментариях или на github.

Обсудить на форуме

use Perl && Dancer;

Теги: Dancer Perl xoma 0


Комментарии 1

xoma
xoma
Спасибо =) Вот тут https://github.com/xoma/mpd/blob/master/Dancer/Dancer_2.html зачатки второй статьи, все никак не допишу =(
Пожалуйста, авторизуйтесь или зарегистрируйтесь для комментирования!